﻿﻿var searchParam = '';

function zipSearch(){
	var url = document.getElementById('baseURL').value;
	var zip = document.getElementById('zipCode').value;
	var max = document.getElementById('max').value;
	document.location = url + '/(postal_code)/' + zip + '/(max)/' + max;
}

function searchByPostalCode(){
	if(document.getElementById('postal_code').value != ''){
		var postal_code = escape(document.getElementById('postal_code').value);
		
		if(!isNaN(document.getElementById('max').value)){
			var max = escape(document.getElementById('max').value);
			var lang = escape(document.getElementById('lang').value);
			
			searchParam = postal_code;
			
			var url = '/phpscripts/search.php?zip=' + postal_code + '&max=' + max + '&lang=' + lang;
			var where = document.getElementById('divSearchResultData');
			
			document.getElementById('searchType').value = 'postal_code';
			clearTableResult();
			AjaxGetData(url, receive_ajax_postal_codes, where);
		}else{
			alert('Le rayon n\'est pas correct');
		}
	}else{
		alert('Veuillez entrer un code postal valide');
	}
}

function searchByProvince(province){
	var lang = escape(document.getElementById('lang').value);
	var url = '/phpscripts/search.php?province=' + province + '&lang=' + lang;
	var where = document.getElementById('divSearchResultData');
	
	searchParam = province;
	
	document.getElementById('searchType').value = 'province';
	clearTableResult();
	AjaxGetData(url, receive_ajax_postal_codes, where);
}

function setRetailerFormat(){
	var tbody = document.getElementById('tbodySearchResult');
	var data = document.getElementById('divSearchResultData').innerHTML;
	var searchType = document.getElementById('searchType').value;
	var cpt = 0;
	
	if(data == 'noResult'){
		document.getElementById('tableSearchResult').style.display = 'none';
		document.getElementById('divSearchNoResult').style.display = 'block';
	}else{
		var retailers = data.split('||');
		var letter = '';
		
		// If search by province, hide the column for distance
		var tdDistance = document.getElementById('tdDistance');
		
		if(null != tdDistance){
			if (searchType == 'postal_code') {
				if(tdDistance.style.display == 'none'){
					tdDistance.style.display = 'table-cell';
				}
			}else{
				tdDistance.style.display = 'none';
			}
		}
		
		for(var i = 0 ; i < retailers.length ; i++){
			if(retailers[i] != ''){
				if (i == 0 && searchType == 'province') {
				}else{
					// Replaces escaped characters
					retailers[i] = HTMLDecode(retailers[i]);
					
					var retailer = retailers[i].split('|');
					
					// Replaces the values in the pattern
					if(typeof retailer[1] != 'undefined' && trim(retailer[1]) != 'address_1'){
						// Adds the letter for provinces
						if (searchType == 'province') {
							var name = trim(retailer[3]);
							first = name.substr(0, 1).toUpperCase();
							
							if(first > letter){
								var tr = document.createElement("tr");
								var cell = document.createElement("td");
								var value = first;
								tr.setAttribute('class', 'trSearchResult');
								cell.appendChild(document.createTextNode(value));
								
								if (searchType == 'postal_code') {
									cell.colSpan = 8;
								}else{
									cell.colSpan = 7;
								}
								
								cell.style.backgroundColor = '#D7D7D9';
								cell.style.fontFamily = 'serif';
								cell.style.fontSize = '24px';
								cell.style.fontStyle = 'italic';
								cell.style.fontWeight = 'bold';
								cell.style.lineHeight = '18px';
								cell.style.paddingLeft = '7px';
								tr.appendChild(cell);
								tbody.appendChild(tr);
								
								letter = first;
							}
						}
						
						// Adds a line in the table
						var tr = document.createElement("tr");
						tr.setAttribute('class', 'trSearchResult');
						
						// Name
						var cell = document.createElement("td");
						var ezName = string2ezURL(trim(retailer[0]));
						
						// Searches the lang
						var tmp = document.location.href.split('fr');
						if(tmp.length == 2){
							var lang = 'fr';
						}else{
							var lang = 'en';
						}
						
						if(searchType == 'province'){
							var node_id = retailer[9];
						}else{
							var node_id = retailer[10];
						}
						
						if(lang == 'fr'){
							var href = '/' + lang + '/Ou-Acheter/' + ezName + '/(id)/' + node_id;
						}else{
							var href = '/' + lang + '/Where-to-buy/' + ezName + '/(id)/' + node_id;
						}
						
						if(searchType == 'province'){
							href += '/(province)/';
						}else{
							href += '/(postal_code)/';
						}
						href += searchParam;
						
						var a = document.createElement('a');
						a.setAttribute('href', href);
						a.innerHTML = trim(retailer[0]);
						cell.appendChild(document.createTextNode(''));
						var tmp = cell.firstChild;
						cell.replaceChild(a, tmp);
						if (searchType == 'postal_code') {
							cell.colSpan = 8;
						}else{
							cell.colSpan = 7;
						}
						cell.className = 'nom_vendeur';
						tr.appendChild(cell);
						
						tbody.appendChild(tr);
						
						var tr = document.createElement("tr");
						tr.setAttribute('class', 'trSearchResult');
						
						// Address 1
						var cell = document.createElement("td");
						var value = trim(retailer[1]);
						
						if(trim(retailer[2]) != ''){
						 	value += '%%br%%' + trim(retailer[2]);
						}
						cell.appendChild(document.createTextNode(value));
						
						// To add a <br /> between the 2 parts of the address
						if (trim(retailer[2]) != '') {
							cell.innerHTML = cell.innerHTML.replace('%%br%%', '<br />');
						}
						tr.appendChild(cell);
						
						// City
						var cell = document.createElement("td");
						var value = trim(retailer[3]);
						cell.appendChild(document.createTextNode(value));
						tr.appendChild(cell);
						
						// Postal Code
						var cell = document.createElement("td");
						var value = trim(retailer[4]);
						cell.appendChild(document.createTextNode(value));
						tr.appendChild(cell);
						
						// Province
						var cell = document.createElement("td");
						var value = trim(retailer[5]);
						cell.appendChild(document.createTextNode(value));
						tr.appendChild(cell);
						
						// Telephone
						var cell = document.createElement("td");
						var value = trim(retailer[6]);
						cell.appendChild(document.createTextNode(value));
						tr.appendChild(cell);
						
						// Fax
						var cell = document.createElement("td");
						var value = trim(retailer[7]);
						cell.appendChild(document.createTextNode(value));
						tr.appendChild(cell);
						
						// Website
						var cell = document.createElement("td");
						var value = trim(retailer[8]);
						var a = document.createElement('a');
						a.setAttribute('href', value);
						a.setAttribute('target', '_blank');
						a.innerHTML = trim(value);
						cell.appendChild(document.createTextNode(''));
						var tmp = cell.firstChild;
						cell.replaceChild(a, tmp);
						
						if (searchType == 'province') {
							cell.className = 'dernier';
						}
						
						tr.appendChild(cell);
						
						// Distance
						if(searchType == 'postal_code'){
							var cell = document.createElement("td");
							var value = trim(retailer[9]) + ' km';
							cell.appendChild(document.createTextNode(value));
							cell.setAttribute('class', 'dernier');
							tr.appendChild(cell);
						}
						
						tbody.appendChild(tr);
						cpt++;
					}
				}
			}
		}
		
		// Builds the titles
		if (searchType == 'postal_code') {
			var titleText = document.getElementById('patternTitleByPostalCode').innerHTML;
			titleText = titleText.replace('%%numFound%%', cpt);
			
			document.getElementById('titleByPostalCode').innerHTML = titleText;
			document.getElementById('titleByPostalCode').style.display = 'block';
			document.getElementById('titleByProvince').style.display = 'none';
		}else{
			// Gets the province's name
			var options = document.getElementById('selProvinces').options;
			var selected = document.getElementById('selProvinces').selectedIndex;
			
			for(var j = 0 ; j < options.length ; j++){
				if(options[j].value == options[selected].value){
					var name = options[j].innerHTML;
					var firstLetter = name.substr(0, 1);
					
					if(firstLetter == 'A' || firstLetter == 'O'){
						var titleText = document.getElementById('patternTitleByProvince2').innerHTML;
					}else{
						var titleText = document.getElementById('patternTitleByProvince').innerHTML;
						
						if(name == 'Nouvelle-Écosse' || name == 'Terre-Neuve'){
							titleText = titleText.replace(' du ', ' de ');
						}
					}
					
					titleText = titleText.replace('%%numFound%%', cpt);
					
					titleText = titleText.replace('%%provinceName%%', options[j].innerHTML);
					break;
				}
			}
			
			document.getElementById('titleByProvince').innerHTML = titleText;
			document.getElementById('titleByProvince').style.display = 'block';
			document.getElementById('titleByPostalCode').style.display = 'none';
		}
		
		document.getElementById('divSearchNoResult').style.display = 'none';
		document.getElementById('tableSearchResult').style.display = 'block';
		
		var tdFax = document.getElementById('tdFax');
		
		if (null != tdDistance) {
			if (searchType == 'postal_code') {
				if (tdDistance.style.display == 'table-cell') {
					tdFax.className = 'telecopieurP';
				}
			}
			else {
				tdFax.className = 'telecopieurP dernier';
			}
		}
	}
}

function clearTableResult(){
	var tbody = document.getElementById('tbodySearchResult');
	var tags = document.getElementsByTagName('tr');
	var nb = tags.length;
	
	for (var i = 0; i < nb; i++) {
		if(typeof tags[1] != 'undefined'){
			tags[1].parentNode.removeChild(tags[1]);
		}
	}
	document.getElementById('tableSearchResult').style.display = 'none';
	document.getElementById('titleByProvince').style.display = 'none';
	document.getElementById('titleByPostalCode').style.display = 'none';
	document.getElementById('divSearchNoResult').style.display = 'none';
}
