// JavaScript Document
var xmlDoc=null;
var Request=null;
years=new Array();
vehicles=new Array();
types=new Array();
nos=new Array();
subjects=new Array();
urls=new Array();
function importXML(file){
	//for IE7
	if (window.ActiveXObject) { 
	xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
	xmlDoc.async = "false";
	xmlDoc.onreadystatechange = verify;
	xmlDoc.load(file);
	}
	//for FF
	else if (document.implementation && document.implementation.createDocument) {
	xmlDoc = document.implementation.createDocument("","",null);
	xmlDoc.async = false;
	xmlDoc.load(file);
	}
}
function verify()
{
if(xmlDoc.readyState!=4)
return false;
}
function createTable()
{
	importXML('xml/technical_bulletins.xml');
	var x = xmlDoc.getElementsByTagName('bulletins');
	for (i=0;i<x.length;i++)
	{
		var year = x[i].getElementsByTagName("year");
		var vehicle = x[i].getElementsByTagName("vehicle");
		var type=x[i].getElementsByTagName("type");
		var no=x[i].getElementsByTagName("no");
		var subject=x[i].getElementsByTagName("subject");
		var url=x[i].getElementsByTagName("url");
		years[i]=year[0].firstChild.nodeValue;
		vehicles[i]=vehicle[0].firstChild.nodeValue;
		types[i]=type[0].firstChild.nodeValue;
		nos[i]=no[0].firstChild.nodeValue;
		subjects[i]=subject[0].firstChild.nodeValue;
		urls[i]=url[0].firstChild.nodeValue;
	}
}
function escapeOther()
{
var mystr="";
      for(var i=150; i>=131;i--)
      {
            mystr += String.fromCharCode(i);
      }
      var sChar, newi, j
      for (var i=150; i >= 131; i=i-1) 
      {
            sChar=String.fromCharCode(i);
            newi=i.toString().substring(1)
            mystr = mystr.replace( new RegExp( sChar.toString(), "g" ), newi);
      }
      alert(mystr);
}
function escapeCHR(str) {
		//str = str.replace("/\\s*/g", " ");
		//str=str.replace(/\s\s*$/, '');
		//str=removeSpaces(str);
		str=str.replace("&amp\;","&");
		str=str.replace("&apos\;","'");
		str=str.replace("&lt\;","<");
		str=str.replace("&gt\;",">");
		str=str.replace("&quot\;","\\");
		str = str.replace("Æ","AE");
        str = str.replace("Ç","C");
        str = str.replace("Ð","D");
        str = str.replace("Ñ","N");
        str = str.replace("Ý","Y");
        str = str.replace("ß","B");
        str = str.replace("æ","ae");
        str = str.replace("ç","c");
        str = str.replace("ð","a");
        str = str.replace("ñ","n");
		return str;
	}
	/*function loopSelected()
	{
	  var txtSelectedValuesObj = document.getElementById('txtSelectedValues');
	  var selectedArray = new Array();
	  var selObj = document.getElementById('selSeaShells');
	  var i;
	  var count = 0;
	  for (i=0; i<selObj.options.length; i++) {
		if (selObj.options[i].selected) {
		  selectedArray[count] = selObj.options[i].value;
		  count++;
		}
	  }
	  txtSelectedValuesObj.value = selectedArray;
	}*/
	function loopSelected(optionSelected)
	{
	  //var txtSelectedValuesObj = document.getElementById('txtSelectedValues');
	  var selectedArray = new Array();
	  var selObj = document.getElementById(optionSelected);
	  var i;
	  var count = 0;
	  for (i=0; i<selObj.options.length; i++) {
		if (selObj.options[i].selected) {
		  selectedArray[count] = selObj.options[i].value;
		  count++;
		}
	  }
	   //alert(selectedArray);
	   return selectedArray;
	}
function removeChildNodes(ctrl)
   {  
	   while (ctrl.childNodes[0])  
	   {    
		ctrl.removeChild(ctrl.childNodes[0]);  
	   }
   }
function getValuesXML()
{
createTable();
j=0;
checker=0;

	var v=true;
	var vt=true;
	if(filter.yr.value=="select" || filter.yr.value=="" || filter.yr.value==null)//if year is not selected
	{
	alert("Select Year");
	return false;
	}
	if(filter.vh.value=="select" || filter.vh.value=="" || filter.vh.value==null)//if vehicle is not selected
	{
	v=false;
	}
	if(filter.vt.value=="select" || filter.vt.value=="" || filter.vt.value==null)//if vehicle type is not selected
	{
	vt=false;
	}
	if(v==false && vt==false)//if vehicle and vehicle type is not selected
	{
	alert("Select Vehicle and Vehicle Type");
	return false;
	}
	if(v==false && vt==true)//if vehicle is not selected
	{
	alert("Select Vehicle");
	return false;
	}
	if(v==true && vt==false)//if vehicle type is not selected
	{
	alert("Select Vehicle Type");
	return false;
	}
	else {
	var selectedArrayYear=loopSelected('yr');
	var selectedArrayVehicle=loopSelected('vh');
	var selectedArrayVehicleType=loopSelected('vt');
	var myFoundno=new Array();
	var myFoundsubject=new Array();
	var myFoundurl=new Array();
	var myFinalArray=new Array();
	var myTestArray=new Array();
	for (i=0;i<years.length; i++)
	{
	if(selectedArrayYear.length==1 && selectedArrayVehicle.length==1 && selectedArrayVehicleType.length==1)
		{
		if (years[i].indexOf(filter.yr.value)>-1 && vehicles[i].indexOf(filter.vh.value)>-1 && types[i].indexOf(filter.vt.value)>-1)
			{
			checker+=1;
			j++;
			myFoundno[j]=nos[i];
			myFoundsubject[j]=escapeCHR(subjects[i]);
			myFoundurl[j]=urls[i];
			myTestArray[j]=(myFoundno[j]+"|"+myFoundsubject[j]+"|"+myFoundurl[j]);		
			}
		}
		else
		{
		//alert("Multiple values Selected");
		// add 3 loops here for 3 arrays to get data for multiple values
		for(a=0;a<selectedArrayYear.length;a++)
		{
			for(b=0;b<selectedArrayVehicle.length;b++)
			{
				for(c=0;c<selectedArrayVehicleType.length;c++)
				{
				if (years[i].indexOf(selectedArrayYear[a])>-1 && vehicles[i].indexOf(selectedArrayVehicle[b])>-1 && types[i].indexOf(selectedArrayVehicleType[c])>-1)
					{
					checker+=1;
					j++;
					myFoundno[j]=nos[i];
					myFoundsubject[j]=escapeCHR(subjects[i]);
					myFoundurl[j]=urls[i];
					myTestArray[j]=(myFoundno[j]+"|"+myFoundsubject[j]+"|"+myFoundurl[j]);		
					}// if ends
				}//vehicle type loop ends
			}// vehicle loop ends
		}// year loop ends
		}	
	}
	myTestArray=uniqueArr(myTestArray); 
	if(checker>0)
	{
		mydiv = document.getElementById('resultTable');
		if(mydiv!=null)
		{
			document.getElementById("resultTable").removeNode(true);
		}	
		var newEl = document.createElement('TABLE');
		newEl.setAttribute('cellPadding',3);
		newEl.setAttribute('cellSpacing',0);
		newEl.setAttribute('border',1);
		newEl.setAttribute('width',500);
		newEl.setAttribute('borderColor','#E0E0E0');
		newEl.setAttribute('id','resultTable');
		var tmp = document.createElement('TBODY');
		newEl.appendChild(tmp);
		//for (j=0;j<myTestArray.length-1;j++)
		for (j=myTestArray.length-2;j>=0;j--)
		{
			var row = document.createElement('TR');
			var theno = document.createElement('TD');
			var thesubject = document.createElement('TD');
			var thehref=document.createElement('a');
			var thehref1=document.createElement('a');
			eles=myTestArray[j].toString().split('|');
			thehref.setAttribute('href',eles[2]);
			thehref1.setAttribute('href',eles[2]);
			thehref.appendChild(document.createTextNode(eles[0]));
			thehref.setAttribute('className','tabContent');
			thehref1.appendChild(document.createTextNode(eles[1]));
			thehref1.setAttribute('className','tabContent');
			theno.appendChild(thehref);
			thesubject.appendChild(thehref1);
			row.appendChild(theno);
			row.appendChild(thesubject);
			tmp.appendChild(row);
		}
		document.getElementById('result').appendChild(newEl);
		//document.getElementById('result').replaceChild(newEl,newEl);
	}
	else
		{
		mydiv = document.getElementById('resultTable');
		if(mydiv!=null)
		{
			//while ( mydiv.firstChild ) 
			//mydiv.removeChild(mydiv.firstChild);
			//mydiv.removeChild(mydiv.firstChild);
			document.getElementById("resultTable").removeNode(true);
		}
		var newEl = document.createElement('TABLE');
		newEl.setAttribute('cellPadding',3);
		newEl.setAttribute('cellSpacing',0);
		newEl.setAttribute('border',1);
		newEl.setAttribute('borderColor','#E0E0E0');
		newEl.setAttribute('width',500);
		newEl.setAttribute('class','subContent');
		newEl.setAttribute('id','resultTable');
		var tmp = document.createElement('TBODY');
		
		var row = document.createElement('TR');
		var themsg = document.createElement('TD');
		themsg.setAttribute('className','styleredbold1');
		var cellText = document.createTextNode("No results Found");
		themsg.appendChild(cellText);		
		row.appendChild(themsg);
		tmp.appendChild(row);
		newEl.appendChild(tmp);
		document.getElementById('result').appendChild(newEl);
		}	
  }  
}
function sortMultiDimensional(a,b){  // this sorts the array using the first element        
return ((a[0] < b[0]) ? -1 : ((a[0] > b[0]) ? 1 : 0));}
function uniqueArr( arr )
{
	arr.sort(); 
	//iterate over all elements
	for( var i=0; i < arr.length-1; ++i)
	{
		//compare two elements at a time.
		//look for consecutive elements that are the same value
		if(arr[i] === arr[i+1])
		{
			//remove the element to the left-most duplicate value
			arr.splice(i--,1);
		}
	}
 return arr;
}
function showAll()
{
createTable();
//window.location.reload();
j=0;
checker=0;
	
	var myFoundno=new Array();
	var myFoundsubject=new Array();
	var myFoundurl=new Array();
	var myFinalArray=new Array();
	var myTestArray=new Array();
	for (i=0;i<years.length; i++)
	{
		checker+=1;
		j++;
		myFoundno[j]=nos[i];
		myFoundsubject[j]=escapeCHR(subjects[i]);
		myFoundurl[j]=urls[i];
		myFinalArray[j]=[myFoundno[j],myFoundsubject[j],myFoundurl[j]];
		myTestArray[j]=(myFoundno[j]+"|"+myFoundsubject[j]+"|"+myFoundurl[j]);		
	}
	myTestArray=uniqueArr(myTestArray); 
	if(checker>0)
	{
		mydiv = document.getElementById('resultTable');
		if(mydiv!=null)
		{
			//while ( mydiv.firstChild ) 
			//mydiv.removeChild(mydiv.firstChild);
			//mydiv.removeChild(mydiv.firstChild);
			document.getElementById("resultTable").removeNode(true);
		}
		var newEl = document.createElement('TABLE');
		newEl.setAttribute('cellPadding',3);
		newEl.setAttribute('cellSpacing',0);
		newEl.setAttribute('width',500);
		newEl.setAttribute('border',1);
		newEl.setAttribute('borderColor','#E0E0E0');
		newEl.setAttribute('class','subContent');
		newEl.setAttribute('id','resultTable');
		var tmp = document.createElement('TBODY');
		newEl.appendChild(tmp);
		//for (j=0;j<myTestArray.length-1;j++)
		for (j=myTestArray.length-2;j>=0;j--)
		{
			var row = document.createElement('TR');
			var theno = document.createElement('TD');
			var thesubject = document.createElement('TD');
			var thehref=document.createElement('a');
			var thehref1=document.createElement('a');
			eles=myTestArray[j].toString().split('|');
			thehref.setAttribute('href',eles[2]);
			thehref1.setAttribute('href',eles[2]);
			thehref.appendChild(document.createTextNode(eles[0]));
			thehref.setAttribute('className','tabContent');
			thehref1.appendChild(document.createTextNode(eles[1]));
			thehref1.setAttribute('className','tabContent');
			theno.appendChild(thehref);
			thesubject.appendChild(thehref1);
			row.appendChild(theno);
			row.appendChild(thesubject);
			tmp.appendChild(row);
		}
		document.getElementById('result').appendChild(newEl);
	}
	else
		{
		mydiv = document.getElementById('resultTable');
		if(mydiv!=null)
		{
			//while ( mydiv.firstChild ) 
			//mydiv.removeChild(mydiv.firstChild);
			//mydiv.removeChild(mydiv.firstChild);
			document.getElementById("resultTable").removeNode(true);
		}
		var newEl = document.createElement('TABLE');
		newEl.setAttribute('cellPadding',3);
		newEl.setAttribute('cellSpacing',0);
		newEl.setAttribute('border',1);
		newEl.setAttribute('width',500);
		newEl.setAttribute('borderColor','#E0E0E0');
		newEl.setAttribute('class','subContent');
		newEl.setAttribute('id','resultTable');
		var tmp = document.createElement('TBODY');
		newEl.appendChild(tmp);
		var row = document.createElement('TR');
		var themsg = document.createElement('TD');
		themsg.setAttribute('className','styleredbold1');
		var cellText = document.createTextNode("No results Found");
		themsg.appendChild(cellText);		
		row.appendChild(themsg);
		tmp.appendChild(row);
		document.getElementById('result').appendChild(newEl);
		}	
  }  
  