				   
var month = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var accessingFromCoursePage = false;
var divToFill;

function compareStat(obj1,obj2)
{
	var counter=0;
	for(var i=0;i<obj2.length;i++)
	{
		for(var j=0;j<obj1.length;j++)
		{
			if(obj2[i]==obj1[j])
			{
				counter++;
			}
		}
	}
	if(counter==obj2.length)
		return true;
	else
		return false;
}						   
function displayData(courseName)
{
	var counter=0;
	var startdate = "";
	var enddate = ""; 
	var parameters=new Array();
	var Finaldata = new Array();
	var subArray=new Array();
	var searchArray=new Array();
	
	if (courseName == undefined) { //Course name parameter is only given by each type of course page
		if(document.filter.category.value!="")
			parameters[parameters.length]=document.filter.category.value;
		if(document.filter.courseList.value!="")
			parameters[parameters.length]=document.filter.courseList.value;
		if(document.filter.loc.value!="")
			parameters[parameters.length]=document.filter.loc.value;
		if(document.filter.frm_month.value!="")
			startdate = document.filter.frm_month.value;
		if(document.filter.to_month.value!="")
			enddate = document.filter.to_month.value;
	} else {
		parameters[parameters.length]=courseName;
	}

 	for(var i=0;i<dataArray.length;i++)	{
		subArray[i]=dataArray[i].split("|");
	}
	if(parameters.length==0)	{
 		for(var i=0;i<subArray.length;i++)		{
			 Finaldata[Finaldata.length] = dataArray[i];
	 	}
	}
	else{
		for(var i=0;i<dataArray.length;i++)	{						
			if(dataArray[i].indexOf(parameters[counter])>=0){
				searchArray[searchArray.length]=i;
			}
		}
 		if(searchArray.length > 0){		
			var flager=false;
			for(var i=0;i<searchArray.length;i++)
			{
				if(compareStat(subArray[searchArray[i]],parameters))
				{
 					Finaldata[Finaldata.length] = dataArray[searchArray[i]];					
					flager=true;
				}
			}
			 
			}
		}		
	if (courseName == undefined) {		
		filterByMonth(Finaldata,startdate,enddate);
	} else {
		accessingFromCoursePage = true;
		filterByMonth(Finaldata,startdate,enddate);
	}
	

}
function filterByMonth(Finaldata,stdate,endate){
	
	var temp="";
	var monthdata =  new Array();
	var subArray = new Array();
 	for(var i=0;i<Finaldata.length;i++)	{
 		subArray[i]=Finaldata[i].split("|");
	}
	if(stdate =="" && endate== "")
		monthdata = Finaldata;
	else if(stdate != "" && endate ==""){
		//alert("stdate is selected by user");
		for(i=0;i<Finaldata.length;i++){
			if(subArray[i][2].indexOf(stdate)==0){
				monthdata[monthdata.length]=Finaldata[i];
			}
		}
	}
	else if(stdate == "" && endate != ""){
		//alert("end date is selected by user");
 		for(i=0;i<Finaldata.length;i++){
			if(subArray[i][2] != "&nbsp;"){
				if(subArray[i][2].length <=9 ){
					if(subArray[i][2].indexOf(endate)==0){
						monthdata[monthdata.length]=Finaldata[i];
					}
				}
				else{
					if(subArray[i][2].indexOf("-")>=0)
 					if(subArray[i][2].split("-")[1].indexOf(endate) == 0){
						monthdata[monthdata.length]=Finaldata[i];
					}
				}
			}
 		}
	}
	else{
 		var st_index = "";
		var en_index = "";
		var st_mon = "";
		var en_mon = "";
		for(i=0;i<month.length;i++){
			if(month[i] == stdate) st_index = i;
			if(month[i] == endate) en_index = i;
		}

 		for(i=0;i<Finaldata.length;i++){
			for(j=st_index;j<=en_index;j++){
 				if(subArray[i][2] != "&nbsp;"){
					if(subArray[i][2].length <= 9){
						if(subArray[i][2].indexOf(month[j])>=0){
							monthdata[monthdata.length]=Finaldata[i];
							break;
						}	
					}
					else{
 						if(stdate == endate){
							if(subArray[i][2].split("-")[0].indexOf(stdate) == 0)
							if(subArray[i][2].split("-")[1].indexOf(stdate) == 0){
								monthdata[monthdata.length]=Finaldata[i];
								break;
							}
						}
						else if (month[j] == stdate){
							if(subArray[i][2].indexOf(month[j]) ==0){
								monthdata[monthdata.length]=Finaldata[i];
								break;
							}
						}
						else if(month[j] == endate){
						if(subArray[i][2].indexOf("-")>=0)
							if(subArray[i][2].split("-")[1].indexOf(month[j]) == 0){
 								monthdata[monthdata.length]=Finaldata[i];
								break;
							}
						}
						
						else{
							if(subArray[i][2].indexOf(month[j])>=0){
								monthdata[monthdata.length]=Finaldata[i];
								break;
							}
						}
					}
				}
			}
		}
	}	 	
		  getResultDisplay(monthdata);	
 }
function getResultDisplay(resultData){

	if (!accessingFromCoursePage) {
		var display_text="<table border='0' cellpadding='0' cellspacing='0' class='contentTable' width='100%'>"+
		 "<tr><th>Dates</th><th>Location</th><th>Course Length</th><th>&nbsp;&nbsp;&nbsp;Course Number</th><th>&nbsp;&nbsp;&nbsp;Price</th></tr>";
	} else {
		var display_text="<table border='0' cellpadding='0' cellspacing='0' class='contentTable' width='100%>"+
		"<tr class='odd'><th>Dates</th><th>Location</th><th>Course Length</th><th>Course Number</th><th>&nbsp;&nbsp;&nbsp;Price</th></tr>";
		
	}
	
 	if(resultData.length == 0){
		display_text+="<tr><td colspan=5 align=center><b>No training dates are scheduled for this course at this time</b></td></tr>";
	}
	else if (!accessingFromCoursePage){
		var subArray = new Array();
		for(i=0;i<resultData.length;i++){
			subArray[i]= resultData[i].split("|");
			
			if(i==0 || subArray[i][0]!=subArray[i-1][0]){
				display_text+="<tr>";
				display_text+="<td colspan='5' id='head_6'><b>"+subArray[i][0]+"</b></td></tr>";
			}
			if(i==0 || subArray[i][2]!=subArray[i-1][2]){
				display_text+="<tr class='odd'>";
				display_text+="<td colspan='5'><b>"+subArray[i][2]+"</b></td></tr>";
			}
			var a=1;
			display_text+="<tr>";	
			for(var j=3;j<subArray[i].length;j++)	{
				if(j==5 || j==6 || j==7){
					display_text+="<td headers='head_'"+a+" align='center'>"+subArray[i][j]+"</td>";
				}
				else{
					display_text+="<td headers='head_'"+a+">"+subArray[i][j]+"</td>";
				}
				a=a+1;
			}
			display_text+="</tr>";
		}
	} else {
		var subArray = new Array();
		for(i=0;i<resultData.length;i++){
			subArray[i]= resultData[i].split("|");					
			var a=1;
			if ( i % 2 == 0) {
				display_text+="<tr>";	
			} else {
				display_text+="<tr class='odd'>";	
			}
			
			for(var j=3;j<subArray[i].length;j++)	{
				if(j==5 || j==6 || j==7){
					display_text+="<td headers='head_'"+a+" align='center'>"+subArray[i][j]+"</td>";
				}
				else{
					display_text+="<td headers='head_'"+a+">"+subArray[i][j]+"</td>";
				}
				a=a+1;
			}
			display_text+="</tr>";
		}		
	
	}
	if(divToFill == undefined) {
		document.getElementById("data").innerHTML=display_text;	 //Default div where data should display
	} else {
		document.getElementById(divToFill).innerHTML=display_text; //Specific div where data should display, useful for pages where one course table per language
	}

	
 }//function ending

 function clearContent(){
	document.filter.category.value="";
	clearCourseList(document.filter.courseList.options.length);
	document.filter.courseList.disabled = true;
	document.filter.loc.value="";
    document.filter.frm_month.value = "";
	document.filter.to_month.value="" ;
 	displayData();
 }
 
 function clearCourseList(courseListLenght){
	var courseToDelete;
	var courseDropDown = document.filter.courseList;
	if (courseListLenght > 1) {
		for (var i = 1; i < courseListLenght; i++) {	
			courseDropDown.removeChild(courseDropDown.lastChild);
		}	
	}
 }
 
 
 function filterData(courseName, specificDivToPlaceData){
 	if (specificDivToPlaceData != undefined) {
		divToFill = specificDivToPlaceData
	}
	if (courseName == undefined) {
		var	startdate= document.filter.frm_month.value;
		var	enddate= document.filter.to_month.value;
 		if(startdate!="" && enddate!=""){
 			var st_index = "";
			var en_index = "";
			for(i=0;i<month.length;i++){
					if(month[i] == startdate) st_index = i;
					if(month[i] == enddate)  en_index = i;
			}	
			if(st_index > en_index){
				alert("Please select the start and the end date from Jan to Dec 2007 only (in order).");
				var resultData = new Array();
				getResultDisplay(resultData);
			}	
			else{
				displayData();
			}
		}
		else{
			displayData();
		}
	} else {
			displayData(courseName);
	}
	
}

	function filterCategoryCourses(selectedCategory){				
		
		if (selectedCategory != "" && selectedCategory != "--Select Category--") { 
			document.filter.courseList.disabled = false;
			clearCourseList(document.filter.courseList.options.length);
		} else {		
			clearCourseList(document.filter.courseList.options.length);
			document.filter.courseList.disabled = true;
			return;
		}
		
		var subArray=new Array();
		var courseName ="";
		var courseListObject = null;		
		
		for(var i=0;i<dataArray.length;i++)	{
			subArray[i]=dataArray[i].split("|");			
			if (subArray[i][0] == selectedCategory) {
				if (i!=0 && subArray[i][1] != subArray[i-1][1] ) { // To avoid duplicates
					courseName = document.createElement('option');
					courseName.text = subArray[i][1];
					courseName.value = subArray[i][1];
					courseListObject = document.getElementById("courseList");
					try {
						courseListObject.add(courseName,null); // standards compliant
					} catch(ex) {														
						courseListObject.add(courseName); // IE only
					  }				
										
				} else if (i == 0){ //If it's the first element, there are not duplicates
					courseName = document.createElement('option');
					courseName.text = subArray[i][1];
					courseName.value = subArray[i][1];
					courseListObject = document.getElementById("courseList");
					try {
						courseListObject.add(courseName,null); // standards compliant
					} catch(ex) {
						courseListObject.add(courseName); // IE only
					  }				
				}
			}

		}
	}	
/*Use this function on each specific course page if you need to create different tables for	each language in which the course is given*/
function fillAllCourseTables(courseArray, divArray) { 
	for (var i=0; i<courseArray.length;i++) {
		filterData(courseArray[i],divArray[i]); 
	}

}