// JavaScript Document

/******************************************************************
Load All other javascript files needed for the tool
*******************************************************************/
/*document.write('<SCR'+'IPT language="JavaScript" type="text/javascript" SRC="'+RATEPLANDISPLAY.JSPath+'js/featureJS.js" ><\/scr'+'ipt>');
document.write('<SCR'+'IPT language="JavaScript" type="text/javascript" SRC="'+RATEPLANDISPLAY.JSPath+'js/getGroupsJS.js" ><\/scr'+'ipt>');
document.write('<SCR'+'IPT language="JavaScript" type="text/javascript" SRC="'+RATEPLANDISPLAY.JSPath+'js/ratePlanJS.js" ><\/scr'+'ipt>');
document.write('<SCR'+'IPT language="JavaScript" type="text/javascript" SRC="'+RATEPLANDISPLAY.JSPath+'js/getPlanGroupsJS.js" ><\/scr'+'ipt>');*/

/******************************************************************
WriteLayer: common function used to write all data to the page
*******************************************************************/
UtilObject = new Object();

/******************************************************************
ImportXML: common function used call all xml
*******************************************************************/
UtilObject.importXML = function(obj,xml,xmlLoc)
{
	var http_request = false;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
	  
		http_request = new XMLHttpRequest();
		
		if (http_request.overrideMimeType) {
		http_request.overrideMimeType('text/xml');
		}
		
		http_request.onreadystatechange = function () {
			if (http_request.readyState == 4) {
				var xmldoc = http_request.responseXML;
				//once finished call the appropriate function to store the xml
				obj.storeXML(xmldoc)
			}
		};
	  //pass in time stamp sp safari doesn't cache		
		  http_request.open('GET', xmlLoc+xml+"?"+ new Date().getTime(), true);
		  http_request.send(null);
		  
	} else if (window.ActiveXObject) { // IE
	 	http_request = new ActiveXObject("Microsoft.XMLDOM");
		http_request.onreadystatechange = function () {
			//once finished call the appropriate function to store the xml
			if (http_request.readyState == 4) 
				obj.storeXML(http_request);
		};		
	var xmlName = xml;
	http_request.load(xmlLoc+xmlName);		
  }
  if (!http_request) {
	 alert('Cannot create XMLHTTP instance');
	 return false;
  }
}

pageData = new Object();

/******************************************************************
SetData: Called from the html page to get the ball rolling
*******************************************************************/
pageData.setData = function(xmlLocation,prov,pageType,dataDivId,type){
	//find the current language
	/*var myURL = window.location+"";
	if(myURL.indexOf('telusmobilite') != -1){
		this.lang="fr";
	}else{
		this.lang="en";
	}*/
	
	
		//alert(type)
	this.xmlFile = "on.xml";
	if(type == "Post-secondary"){
		pageData.parseData = pageData.parseDataUniversity;
	}else if (type == "Post-secondary / Colleges"){
		pageData.parseData = pageData.parseDataCollege;	
	}else if (type == "Postsecondaire"){
		pageData.parseData = pageData.parseDataUniversityFR;
	}else if (type == "CollegeFR"){
		
		pageData.parseData = pageData.parseDataCollegeFR;	
	}else if(type == "elementary"){
		pageData.parseData = pageData.parseDataElemSec;	
	}else if(type == "elementaryFR"){
		pageData.parseData = pageData.parseDataElemSecFR;	
	}
		
	
	//fr
	//Postsecondaire
	//Postsecondaire / Collège
	//en
	//Post-secondary / Colleges
	//Post-secondary 
	//Continuing education and adult learning
	
	//this.type =type;
	
	this.xmlLoc = xmlLocation;
	this.prov = prov;
	this.dataDivId = dataDivId;
	//call to get the features
	this.getData();	
}

pageData.getData = function(){
	var xml=this.xmlFile;
	UtilObject.importXML(pageData,xml,this.xmlLoc);
}


pageData.storeXML = function(xml){
	var nodes = xml.getElementsByTagName('item');
	var total_nodes = nodes.length;
	var dataArr = new Array();
	var tempObj = [];
	
	for(var i=0; i<total_nodes; i++){
		var tempObj = [];
		
		for(var j = 0;j< nodes[i].attributes.length;j++){
			tempObj[nodes[i].attributes[j].name] = nodes[i].attributes[j].value;		
		}
		
		for(var j = 0;j < nodes[i].childNodes.length;j++ ){
			
			var textNodes = nodes[i].childNodes[j];
		
			if(textNodes.firstChild != undefined){
				tempObj[textNodes.nodeName] = textNodes.firstChild.nodeValue;	
			}else{
				tempObj[textNodes.nodeName] = "";	
			}
		
		}
		dataArr.push(tempObj)
	}
	
	this.parseData(dataArr) ;
}


pageData.parseDataUniversity = function(dataArr){
	var displayData ='';
	var university = [];
	
	for(var i = 0;i<dataArr.length;i++){			
			if(dataArr[i].type == "Post-secondary" ){
				university.push(dataArr[i]);
			}
			
	}
	myArraySort('city',university);
	
	
	for(var i = 0;i<university.length;i++){		
		displayData+=buildItem(university[i]);
	}
	
	
		
	document.getElementById(this.dataDivId).innerHTML = displayData;
	
}

pageData.parseDataUniversityFR = function(dataArr){
	var displayData ='';
	var university = [];
	var adult = [];
	for(var i = 0;i<dataArr.length;i++){
		if(dataArr[i].type == "Postsecondaire" ){
				university.push(dataArr[i]);
	
			}
	
	}
	myArraySort('city',university);

	
	for(var i = 0;i<university.length;i++){		
		displayData+=buildItem(university[i]);
	}
	
	
	
	document.getElementById(this.dataDivId).innerHTML = displayData;
	
}

pageData.parseDataCollege = function(dataArr){
	var displayData ='';
	var university = [];
	
	for(var i = 0;i<dataArr.length;i++){
				
			if(dataArr[i].type == "Post-secondary / Colleges" ){
				university.push(dataArr[i]);
	
			}
			
		
	}
	myArraySort('city',university);
	
	
	for(var i = 0;i<university.length;i++){		
		displayData+=buildItem(university[i]);
	}
	
	
	
	document.getElementById(this.dataDivId).innerHTML = displayData;
}

pageData.parseDataCollegeFR = function(dataArr){
	var displayData ='';
	var university = [];
	
	for(var i = 0;i<dataArr.length;i++){
			if(dataArr[i].type == "Postsecondaire / Collège" ){
				university.push(dataArr[i]);
	
			}
			
	}
	myArraySort('city',university);
	
	
	for(var i = 0;i<university.length;i++){		
		displayData+=buildItem(university[i]);
	}	
	
	document.getElementById(this.dataDivId).innerHTML = displayData;
}

pageData.parseDataElemSec = function(dataArr){
	
	var dataType ={};
	dataType.type1 = "Elementary";
	dataType.type2 = "Secondary";
	dataType.type3 = "Daycare";	
	dataType.type4 = "Continuing education and adult learning";
	dataType.type5 = "Provincial and demonstration schools";
	dataType.trueVal = "Yes";
	dataType.cath ="Catholic schools";
	dataType.pub ="Public schools";	
	
	this.loadElem(dataArr,dataType);
}
pageData.loadElem = function(dataArr,dataType){
	var displayData ='';
	var elem = [];
	var sec = [];
	var daycare = [];
	var adult = [];
	var demo = [];
	for(var i = 0;i<dataArr.length;i++){
				
			if(dataArr[i].type == dataType.type1 ){			
				elem.push(dataArr[i]);
			}else if(dataArr[i].type == dataType.type2){	
				sec.push(dataArr[i]);
			}else if(dataArr[i].type ==  dataType.type3){
				daycare.push(dataArr[i]);
			}else if(dataArr[i].type ==  dataType.type4){
				adult.push(dataArr[i]);
			}else if(dataArr[i].type ==  dataType.type5){
				demo.push(dataArr[i]);
			}
			
		
	}
	
	myArraySort('city',elem);
	myArraySort('region',elem);
	myArraySort('city',sec);
	myArraySort('region',sec);
	
	var elemCath = [];
	var elemPub = [];
	for(var i = 0;i<elem.length;i++){
		if(elem[i].catholicSchool == dataType.trueVal){
			elemCath.push(elem[i]);	
		}else{
			elemPub.push(elem[i]);	
		}
	}
	
	var secCath = [];
	var secPub = [];
	for(var i = 0;i<sec.length;i++){
		if(sec[i].catholicSchool == dataType.trueVal){
			secCath.push(sec[i]);	
		}else{
			secPub.push(sec[i]);	
		}
	}
	
	myArraySort('city',daycare);
	myArraySort('region',daycare);
	myArraySort('city',adult);
	myArraySort('region',adult);
	
	var adultCath = [];
	var adultPub = [];
	for(var i = 0;i<adult.length;i++){
		if(adult[i].catholicSchool == dataType.trueVal){
			adultCath.push(adult[i]);	
		}else{
			adultPub.push(adult[i]);	
		}
	}
	
		
	myArraySort('city',demo);
	myArraySort('region',demo);
	
	var lastRegion = ''
	for(var i = 0;i<daycare.length;i++){
		if(daycare[i].region != lastRegion){
			lastRegion = daycare[i].region;
			displayData+=buildItem(daycare[i],true,true);
		}else{
			displayData+=buildItem(daycare[i],false,true);
		}
	}
	

	
	displayData+="<p class='listingSchools' >"+dataType.type1+"</p>";
	displayData+="<p class='listingSchools' >"+dataType.cath+"</p>";
	var lastRegion = '';
	for(var i = 0;i<elemCath.length;i++){	
		if(elemCath[i].region != lastRegion){
			lastRegion = elemCath[i].region;
			displayData+=buildItem(elemCath[i],true,true);
		}else{
			displayData+=buildItem(elemCath[i],false,true);
		}
	
		
	}
	displayData+="<p class='listingSchools' >"+dataType.pub+"</p>";
	var lastRegion = '';
	for(var i = 0;i<elemPub.length;i++){	
		if(elemPub[i].region != lastRegion){
			lastRegion = elemPub[i].region;
			displayData+=buildItem(elemPub[i],true,true);
		}else{
			displayData+=buildItem(elemPub[i],false,true);
		}
	
		
	}
	displayData+="<p class='listingSchools' >"+dataType.type2+"</p>";
	displayData+="<p class='listingSchools' >"+dataType.cath+"</p>";
	var lastRegion = '';
	for(var i = 0;i<secCath.length;i++){	
		if(secCath[i].region != lastRegion){
			lastRegion = secCath[i].region;
			displayData+=buildItem(secCath[i],true,true);
		}else{
			displayData+=buildItem(secCath[i],false,true);
		}
	
		
	}
	displayData+="<p class='listingSchools' >"+dataType.pub+"</p>";
	var lastRegion = '';
	for(var i = 0;i<secPub.length;i++){	
		if(secPub[i].region != lastRegion){
			lastRegion = secPub[i].region;
			displayData+=buildItem(secPub[i],true,true);
		}else{
			displayData+=buildItem(secPub[i],false,true);
		}
	
		
	}
	
	displayData+="<p class='listingSchools' >"+dataType.type5+"</p>";
	for(var i = 0;i<demo.length;i++){		
		displayData+=buildItem(demo[i]);
	}
	
	displayData+="<p class='listingSchools' >"+dataType.type4+"</p>";
	
	
	displayData+="<p class='listingSchools' >"+dataType.cath+"</p>";
	var lastRegion = '';
	for(var i = 0;i<adultCath.length;i++){	
		if(adultCath[i].region != lastRegion){
			lastRegion = adultCath[i].region;
			displayData+=buildItem(adultCath[i],true,true);
		}else{
			displayData+=buildItem(adultCath[i],false,true);
		}
	
		
	}
	displayData+="<p class='listingSchools' >"+dataType.pub+"</p>";
	var lastRegion = '';
	for(var i = 0;i<adultPub.length;i++){	
		if(adultPub[i].region != lastRegion){
			lastRegion = adultPub[i].region;
			displayData+=buildItem(adultPub[i],true,true);
		}else{
			displayData+=buildItem(adultPub[i],false,true);
		}
	
		
	}
	
	
	
	
	
	

	document.getElementById(this.dataDivId).innerHTML = displayData;
	
}



pageData.parseDataElemSecFR = function(dataArr){
	
	var dataType ={};
	dataType.type1 = "Élémentaire";
	dataType.type2 = "Secondaire";
	dataType.type3 = "Garderie";	
	dataType.type4 = "Éducation des adultes et éducation permanent";
	dataType.type5 = "Écoles provincial et d'application";
	dataType.trueVal = "Oui";
	dataType.cath ="Écoles catholiques";
	dataType.pub ="Écoles publiques";	
	
	this.loadElem(dataArr,dataType);

}

function buildItem(data,region,schoolBoard){
	var displayData='';
	
	if(region){			
			displayData += "<h4 >"+data.region +'</h4>'; 	
	}	
	displayData += "<br/><p>";
	if(schoolBoard){
		displayData += '<b>'+data.schoolBoard+'</b><br />';
	}
	
	displayData += data.schoolName+' - '+data.city+'<br />'; 
	displayData += ""+data.addressDisplay+'<br />';
	displayData += data.postal_code+', Ontario<br />'; 
	displayData += data.phone+'<br />'; 
	if(data.website != ''){
		displayData += '<a target="_new" href="'+data.website+'">'+data.website+'</a><br />'; 
	}
	if(data.email != ''){
		displayData += '<a href="mailto:'+data.email+'">'+data.email+'</a><br />'; 
	}
	displayData += '</p>'; 
	
	return displayData;
	
}

function myArraySort(f,array) {
  var i, j;
  var currentValue;
  var currentObj;
  var compareObj;
  var compareValue;
  
  for(i=1; i<array.length;i++) {
    currentObj = array[i];
    currentValue = currentObj[f];
    
    j= i-1;
    compareObj = array[j];
    compareValue = compareObj[f];
    
    while(j >=0 && compareValue > currentValue) {
      array[j+1] = array[j];
      j--;
      if (j >=0) {
        compareObj = array[j];
        compareValue = compareObj[f];
      }        
    }  
    array[j+1] = currentObj;
  }
}


/*pageData.parseDataElemSec = function(dataArr){
	var displayData ='';
	var elem = [];
	var sec = [];
	var daycare = [];
	var adult = [];
	var demo = [];
	for(var i = 0;i<dataArr.length;i++){
				
			if(dataArr[i].type == "Elementary" ){			
				elem.push(dataArr[i]);
			}else if(dataArr[i].type == "Secondary"){	
				sec.push(dataArr[i]);
			}else if(dataArr[i].type ==  "Daycare"){
				daycare.push(dataArr[i]);
			}else if(dataArr[i].type ==  "Continuing education and adult learning"){
				adult.push(dataArr[i]);
			}else if(dataArr[i].type ==  "Provincial and demonstration schools"){
				demo.push(dataArr[i]);
			}
			
		
	}
	
	myArraySort('city',elem);
	myArraySort('region',elem);
	myArraySort('city',sec);
	myArraySort('region',sec);
	
	var elemCath = [];
	var elemPub = [];
	for(var i = 0;i<elem.length;i++){
		if(elem[i].catholicSchool == "Yes"){
			elemCath.push(elem[i]);	
		}else{
			elemPub.push(elem[i]);	
		}
	}
	
	var secCath = [];
	var secPub = [];
	for(var i = 0;i<sec.length;i++){
		if(sec[i].catholicSchool == "Yes"){
			secCath.push(sec[i]);	
		}else{
			secPub.push(sec[i]);	
		}
	}
	
	myArraySort('city',daycare);
	myArraySort('region',daycare);
	myArraySort('city',adult);
	myArraySort('region',adult);
	
	var adultCath = [];
	var adultPub = [];
	for(var i = 0;i<adult.length;i++){
		if(adult[i].catholicSchool == "Yes"){
			adultCath.push(adult[i]);	
		}else{
			adultPub.push(adult[i]);	
		}
	}
	
		
	myArraySort('city',demo);
	myArraySort('region',demo);
	
	var lastRegion = ''
	for(var i = 0;i<daycare.length;i++){
		if(daycare[i].region != lastRegion){
			lastRegion = daycare[i].region;
			displayData+=buildItem(daycare[i],true,true);
		}else{
			displayData+=buildItem(daycare[i],false,true);
		}
	}
	

	
	displayData+="<p class='listingSchools' >Elementary</p><br/>";
	displayData+="<p class='listingSchools' >Catholic schools </p><br/>";
	var lastRegion = '';
	for(var i = 0;i<elemCath.length;i++){	
		if(elemCath[i].region != lastRegion){
			lastRegion = elemCath[i].region;
			displayData+=buildItem(elemCath[i],true,true);
		}else{
			displayData+=buildItem(elemCath[i],false,true);
		}
	
		
	}
	displayData+="<p class='listingSchools' >Public schools </p><br/>";
	var lastRegion = '';
	for(var i = 0;i<elemPub.length;i++){	
		if(elemPub[i].region != lastRegion){
			lastRegion = elemPub[i].region;
			displayData+=buildItem(elemPub[i],true,true);
		}else{
			displayData+=buildItem(elemPub[i],false,true);
		}
	
		
	}
	displayData+="<p class='listingSchools' >Secondary</p><br/>";
	displayData+="<p class='listingSchools' >Catholic schools </p><br/>";
	var lastRegion = '';
	for(var i = 0;i<secCath.length;i++){	
		if(secCath[i].region != lastRegion){
			lastRegion = secCath[i].region;
			displayData+=buildItem(secCath[i],true,true);
		}else{
			displayData+=buildItem(secCath[i],false,true);
		}
	
		
	}
	displayData+="<p class='listingSchools' >Public schools </p><br/>";
	var lastRegion = '';
	for(var i = 0;i<secPub.length;i++){	
		if(secPub[i].region != lastRegion){
			lastRegion = secPub[i].region;
			displayData+=buildItem(secPub[i],true,true);
		}else{
			displayData+=buildItem(secPub[i],false,true);
		}
	
		
	}
	
	displayData+="<p class='listingSchools' >Provincial and demonstration schools</p><br/>";
	for(var i = 0;i<demo.length;i++){		
		displayData+=buildItem(demo[i]);
	}
	
	displayData+="<p class='listingSchools' >Continuing education and adult learning</p><br/>";
	
	
	displayData+="<p class='listingSchools' >Catholic schools </p><br/>";
	var lastRegion = '';
	for(var i = 0;i<adultCath.length;i++){	
		if(adultCath[i].region != lastRegion){
			lastRegion = adultCath[i].region;
			displayData+=buildItem(adultCath[i],true,true);
		}else{
			displayData+=buildItem(adultCath[i],false,true);
		}
	
		
	}
	displayData+="<p class='listingSchools' >Public Schools</p><br/>";
	var lastRegion = '';
	for(var i = 0;i<adultPub.length;i++){	
		if(adultPub[i].region != lastRegion){
			lastRegion = adultPub[i].region;
			displayData+=buildItem(adultPub[i],true,true);
		}else{
			displayData+=buildItem(adultPub[i],false,true);
		}
	
		
	}
	
	
	
	
	
	

	document.getElementById(this.dataDivId).innerHTML = displayData;
	
}*/
/*
pageData.parseDataElemSecFR = function(dataArr){
	

	var displayData ='';
	var elem = [];
	var sec = [];
	var daycare = [];
	var adult = [];
		var demo = [];
	for(var i = 0;i<dataArr.length;i++){
				
			if(dataArr[i].type == "Élémentaire" ){
				elem.push(dataArr[i]);	
			}else if (dataArr[i].type == "Secondaire"){	
				sec.push(dataArr[i]);			
			}else if(dataArr[i].type ==  "Garderie"){
				daycare.push(dataArr[i]);
			}else if(dataArr[i].type ==  "Éducation des adultes et éducation permanente"){
				adult.push(dataArr[i]);
			}else if(dataArr[i].type ==  "Écoles provincial et d'application"){
				demo.push(dataArr[i]);
			}	
	}
	
	//var elemCath = 
	//for(var i = 0;i<elemSec.length;i++){
			
		
	//}
	
	myArraySort('city',elem);
	myArraySort('region',elem);
	myArraySort('city',sec);
	myArraySort('region',sec);
	
	var elemCath = [];
	var elemPub = [];
	for(var i = 0;i<elem.length;i++){
		if(elem[i].catholicSchool == "Oui"){
			elemCath.push(elem[i]);	
		}else{
			elemPub.push(elem[i]);	
		}
	}
	
	var secCath = [];
	var secPub = [];
	for(var i = 0;i<sec.length;i++){
		if(sec[i].catholicSchool == "Oui"){
			secCath.push(sec[i]);	
		}else{
			secPub.push(sec[i]);	
		}
	}
	
	myArraySort('city',daycare);
	myArraySort('region',daycare);
	myArraySort('city',adult);
	myArraySort('region',adult);
	
	var adultCath = [];
	var adultPub = [];
	for(var i = 0;i<adult.length;i++){
		if(adult[i].catholicSchool == "Oui"){
			adultCath.push(adult[i]);	
		}else{
			adultPub.push(adult[i]);	
		}
	}
	
		
	myArraySort('city',demo);
	myArraySort('region',demo);
	
	var lastRegion = ''
	for(var i = 0;i<daycare.length;i++){
		if(daycare[i].region != lastRegion){
			lastRegion = daycare[i].region;
			displayData+=buildItem(daycare[i],true,true);
		}else{
			displayData+=buildItem(daycare[i],false,true);
		}
	}
	
	displayData+="<p class='listingSchools' >Élémentaire</p><br/>";
	displayData+="<p class='listingSchools' >Écoles catholiques</p><br/>";
	var lastRegion = '';
	for(var i = 0;i<elemCath.length;i++){	
		if(elemCath[i].region != lastRegion){
			lastRegion = elemCath[i].region;
			displayData+=buildItem(elemCath[i],true,true);
		}else{
			displayData+=buildItem(elemCath[i],false,true);
		}
	
		
	}
	displayData+="<p class='listingSchools' >Écoles publiques</p><br/>";
	var lastRegion = '';
	for(var i = 0;i<elemPub.length;i++){	
		if(elemPub[i].region != lastRegion){
			lastRegion = elemPub[i].region;
			displayData+=buildItem(elemPub[i],true,true);
		}else{
			displayData+=buildItem(elemPub[i],false,true);
		}
	
		
	}
	displayData+="<p class='listingSchools' >Secondaire</p><br/>";
	displayData+="<p class='listingSchools' >Écoles catholiques</p><br/>";
	var lastRegion = '';
	for(var i = 0;i<secCath.length;i++){	
		if(secCath[i].region != lastRegion){
			lastRegion = secCath[i].region;
			displayData+=buildItem(secCath[i],true,true);
		}else{
			displayData+=buildItem(secCath[i],false,true);
		}
	
		
	}
	displayData+="<p class='listingSchools' >Écoles publiques</p><br/>";
	var lastRegion = '';
	for(var i = 0;i<secPub.length;i++){	
		if(secPub[i].region != lastRegion){
			lastRegion = secPub[i].region;
			displayData+=buildItem(secPub[i],true,true);
		}else{
			displayData+=buildItem(secPub[i],false,true);
		}
	
		
	}
	
	displayData+="<p class='listingSchools' >Écoles provincial et d'application</p><br/>";
	for(var i = 0;i<demo.length;i++){		
		displayData+=buildItem(demo[i]);
	}
	
	
	displayData+="<p class='listingSchools' >Éducation des adultes et éducation permanente</p><br/>";
	displayData+="<p class='listingSchools' >Écoles catholiques</p><br/>";
	var lastRegion = '';
	for(var i = 0;i<adultCath.length;i++){	
		if(adultCath[i].region != lastRegion){
			lastRegion = adultCath[i].region;
			displayData+=buildItem(adultCath[i],true,true);
		}else{
			displayData+=buildItem(adultCath[i],false,true);
		}
	
		
	}
	displayData+="<p class='listingSchools' >Écoles publiques</p><br/>";
	var lastRegion = '';
	for(var i = 0;i<adultPub.length;i++){	
		if(adultPub[i].region != lastRegion){
			lastRegion = adultPub[i].region;
			displayData+=buildItem(adultPub[i],true,true);
		}else{
			displayData+=buildItem(adultPub[i],false,true);
		}
	
		
	}
	
	
	document.getElementById(this.dataDivId).innerHTML = displayData;
	
}*/
