/* contains search results functions and identify icon */

//function used to display the search results
//does not start or begin table, only displays results as row
function mq_display_searchResults(container, searchResults) {
    if(!mq_ParamExists(searchResults))
        return;

    var tbody = document.createElement ('tbody');		//tbody.className='tablebdr';

    for(var count=0;count<searchResults.count;count++) {
        var loc = searchResults.getAt[count];

        var tr1 = document.createElement ('tr');

            /* combined this field with the location name field on 04 June 08
            var tr1td1= document.createElement ('td');
                tr1td1.className = 'dataBgSRLC';
            if (mq_ParamExists (av.proxIconId)) {
                createImg (tr1td1, '/images/icons/' + av.proxIconId + '_' + loc.number + '.gif', '', '', '', '', loc.number);
            } else {
                tr1td1.appendChild (document.createTextNode (loc.number));
            } */

            /*var td2 = document.createElement ('td');
                createImg (td2, loc.map.request, loc.map.width, loc.map.height, '', '', '');
                td2.width = loc.map.height; */

            var tr1td2 = document.createElement ('td');
            tr1td2.className = 'dataBgSRLC';       
				/*if (mq_ParamExists (av.proxIconId)) {
                    createImg (tr1td2, '/images/icons/' + av.proxIconId + '_' + loc.number + '.gif', '', '', '', '', loc.number);
                } else {*/
                    tr1td2.appendChild (document.createTextNode (loc.number));
                //}
                
				if (mq_ParamExists(loc.name) && loc.name.length) {
						//var em = document.createElement ('em');
						tr1td2.appendChild (document.createTextNode ('   ' + loc.name));
						//tr1td2.appendChild (em);
				}
            	tr1td2.colSpan = 2;

/*            var td = document.createElement ('td');
                td3.className = 'resultAddr';
                mq_display_address_location(td3, loc, generateLocMapRQ(loc));
*/

        //tr1.appendChild (tr1td1);
        tr1.appendChild (tr1td2);

        var tr2 = document.createElement ('tr');

            var tr2td1= document.createElement ('td');

            var tr2td2= document.createElement ('td');				tr2td2.className = 'searchresulttextleft';
				if (mq_ParamExists(loc.address) && loc.address.length) {
				 tr2td2.appendChild (document.createTextNode (loc.address));
				 tr2td2.appendChild (document.createElement ('br'));
				}
				if (mq_ParamExists(loc.city) && loc.city.length)
				 tr2td2.appendChild (document.createTextNode (loc.city + ', '));

				if (mq_ParamExists(loc.stateProvince) && loc.stateProvince.length) {
				 tr2td2.appendChild (document.createTextNode (loc.stateProvince));
				 bSpace=true;
				}
				if (mq_ParamExists(loc.postalCode) && loc.postalCode.length) {
				 if (bSpace) {
					 tr2td2.appendChild (document.createTextNode (' '));
				 }
				 tr2td2.appendChild (document.createTextNode (loc.postalCode));
				}
				if (mq_ParamExists(loc.country) && loc.country.length) {
				 if(bSpace) {
					 tr2td2.appendChild (document.createTextNode (' '));
				 }
				 tr2td2.appendChild (document.createTextNode (loc.country));
				}
                
				/* add phone field to the output if available */
				if (mq_ParamExists(loc.userFields.user1) && loc.userFields.user1 != '') {
					tr2td2.appendChild (document.createElement ('br'));
					tr2td2.appendChild (document.createTextNode( "Phone: " + loc.userFields.user1 ));
				}

            var tr2td3 = document.createElement ('td');
                tr2td3.className = 'searchresulttextright';
                if (mq_ParamExists(loc.distance)) {
                    var distance = loc.distance.value + (loc.distance.units == "mi" ? " miles" : " kilometers");
                } else {
                    var distance = '';
                }
                tr2td3.appendChild (document.createTextNode ("Distance: " + distance));

				/* Add branch type info to the output */
                var loctype = false;
                if (mq_ParamExists(loc.searchFields.search1) && loc.searchFields.search1 == "1") {
						loctype = "ATM";
				} else if (mq_ParamExists(loc.searchFields.search4) && loc.searchFields.search4 == "1") {
						loctype = "Branch";
				} else if (mq_ParamExists(loc.searchFields.search5) && loc.searchFields.search5 == "1") {
						loctype = "PNC Investments";
				} else if (mq_ParamExists(loc.searchFields.search6) && loc.searchFields.search6 == "1") {
						loctype = "Private Client Group";
				}

				if (loctype) {
					tr2td3.appendChild (document.createElement ('br'));
					tr2td3.appendChild (document.createTextNode ("Services: " + loctype));
				}

				if (mq_ParamExists(loc.userFields.user5) && loc.userFields.user5 != '') {
					tr2td3.appendChild (document.createElement ('br'));
					tr2td3.appendChild (document.createTextNode ("Special features: " + loc.userFields.user5));
				    if (loc.userFields.user5 == "Voice-Guided ATM"){
				        tr2td3.appendChild (document.createTextNode ("    "));
				        var prevA = createA (tr2td3, 'javascript:openNewWindow("https://www.nationalcity.com/content/Locator/cs_voiceguidedatm.asp","NCC",10,10,360,390);', '');
				        prevA.appendChild (createImg (tr2td3, 'https://www.nationalcity.com/content/images/Locator/phone.gif', '', '', '', '', ''));
				        //createImg (tr2td3, 'phone.gif', '', '', '', '', '');
				    }
				}
				if (mq_ParamExists(loc.userFields.user3) && loc.userFields.user3 != '') {
					tr2td3.appendChild (document.createElement ('br'));
					tr2td3.appendChild (document.createTextNode (loc.userFields.user3));
				}
				if (mq_ParamExists(loc.userFields.user4) && loc.userFields.user4 != '') {
					tr2td3.appendChild (document.createElement ('br'));
					tr2td3.appendChild (document.createTextNode (loc.userFields.user4));
				}
                
        //tr2.appendChild (tr2td1);
        tr2.appendChild (tr2td2);
        tr2.appendChild (tr2td3);

        /*
        var tr3 = document.createElement ('tr');
        var tr3td = document.createElement ('td');
	    tr3td.appendChild (document.createTextNode ("        "));
        tr3td.colspan= 3
        tr3.appendChild (tr3td);

        var tr4 = document.createElement ('tr');
        var tr4td = document.createElement ('td');
	    tr4td.appendChild (document.createTextNode ("        "));
        tr4td.colspan= 3
        tr4.appendChild (tr4td);
        tbody.appendChild (tr3);
        tbody.appendChild (tr4);
        */
        
        tbody.appendChild (tr1);
        tbody.appendChild (tr2);
                
        if(count < eval(searchResults.count)-1) {
            var tr2 = document.createElement ('tr');

                var td5 = document.createElement ('td');
                    td5.colSpan = 4;
                    /* commented on 02 June 08 for new implementation
                    td5.appendChild (document.createElement ('hr'));
                    */

            tr2.appendChild (td5);
            tbody.appendChild (tr2);
        }
        //tbody.classname='tablebdr';
    }
    container.appendChild (tbody);
}

//creates the url required to transform a location into a locmap request.
function generateLocMapRQ(loc) {
    var url = "advantage.adp?transaction=locmap";
        url+= createMapNV(loc.map);
        url+= createLocNV(loc,"",-1);

    return url;
}

//creates name value pairs from a map object.
//NOTE: does not use height and width leaves caller to add these.
function createMapNV(map) {
    var url="";

    if (!mq_ParamExists(map))
        return url;

    if(mq_ParamExists(map.latitude) && map.latitude.length > 0) {
        url+="&mapLatitude="+map.latitude;
    }
    if(mq_ParamExists(map.longitude) && map.longitude.length > 0) {
        url+="&mapLongitude="+map.longitude;
    }
    if(mq_ParamExists(map.zoomLevel) && map.zoomLevel.length > 0) {
        url+="&zoomLevel="+map.zoomLevel;
    }
    if(mq_ParamExists(map.mapStyle) && map.mapStyle.length > 0) {
        url+="&mapStyle="+map.mapStyle;
    }

    return url;
}

//function to url_encode equal and ampersands
function urlEncoder(t) {
    if(!mq_ParamExists(t)){return "";}
    t = t.replace("&", "%26");
    t = t.replace("=", "%3d");
    return t;
}

//function used to turn a location into Name value pairs
function createLocNV(loc, prefix, num) {
    var url = "";

    if(mq_ParamExists(loc) != true)
        return url;

    if(mq_ParamExists(loc.name) && loc.name.length > 0) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="name";

        if (num > -1)
            url+=num;

        url+="=" + urlEncoder(loc.name);
    }
    if(mq_ParamExists(loc.address) && loc.address.length > 0) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="address";

        if (num > -1)
            url+=num;

        url+="=" + urlEncoder(loc.address);
    }
    if(mq_ParamExists(loc.city) && loc.city.length > 0) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="city";

        if (num > -1)
            url+=num;

        url+="=" + urlEncoder(loc.city);
    }
    if(mq_ParamExists(loc.stateProvince) && loc.stateProvince.length > 0) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="stateProvince";

        if (num > -1)
            url+=num;

        url+="=" + loc.stateProvince;
    }
    if(mq_ParamExists(loc.country) && loc.country.length > 0) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="country";

        if (num > -1)
            url+=num;

        url+="=" + loc.country;
    }
    if(mq_ParamExists(loc.latitude) && loc.latitude.length > 0) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="latitude";

        if (num > -1)
            url+=num;

        url+="=" + loc.latitude;
    }
    if(mq_ParamExists(loc.longitude) && loc.longitude.length > 0) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="longitude";

        if (num > -1)
            url+=num;

        url+="=" + loc.longitude;
    }
    if(mq_ParamExists(loc.iconId) && loc.iconId.length > 0) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="iconid";

        if (num > -1)
            url+=num;

        url+="=" + loc.iconId;
    }
    if((mq_ParamExists(loc.userFields)) && (mq_ParamExists(loc.userFields.user1)) && (loc.userFields.user1.length > 0)) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="user1";

        if (prefix == "poi_")
            url+="_";

        if (num > -1)
            url+=num;

        url+="=" + loc.userFields.user1;

    }

    return url;
}

//function used to output next and previous links
function mq_output_next_prev(container, av) {

    if(!mq_ParamExists(av))
        return;

    //var div = createDiv (container, 'nextPrev', '');

    if(mq_ParamExists(av.prevData)) {
        var pDiv = createDiv (container, 'backbutton', '');
        var prevA = createA (pDiv, 'advantage.adp?template=search_results&url=' + escape(av.prevData), '');
            prevA.appendChild (document.createTextNode ('Back'));
    }

    /* var bDiv = createDiv (div, 'back', '');
        bDiv.appendChild (document.createTextNode ('[ '));
        var backA = createA (bDiv, '#', '');
            backA.appendChild (document.createTextNode ('Back to Top'));
        bDiv.appendChild (document.createTextNode (' ]')); */

    if(mq_ParamExists(av.nextData)) {
        var nDiv = createDiv (container, 'nextbutton', '');
        var nextA = createA (nDiv, 'advantage.adp?template=search_results&url=' + escape(av.nextData), '');
            nextA.appendChild (document.createTextNode ('Next'));
    }
}

//function used to display the search results in a dropdown, 
//this is used for SelectDifferentbranch page in SDA.
function mq_display_searchResults_dropdown(form, searchResults, prefix) {
   if(!mq_ParamExists(searchResults))
        return;
   if (searchResults.count > 0 && mq_ParamExists(searchResults.getAt[0]) &&
      mq_ParamExists(searchResults.getAt[0].country) && searchResults.getAt[0].country.length) {
      createHiddenInput (form, prefix + 'country', prefix + 'country', searchResults.getAt[0].country);
   }
   mqSearchResultRow(form, searchResults, prefix);
}
  
function mqSearchResultRow(form, searchResults, prefix) {
    createHiddenInput (form, prefix + 'Name', prefix + 'Name', '');
    createHiddenInput (form, prefix + 'distance', prefix + 'distance', '');
    createHiddenInput (form, prefix + 'distanceunit', prefix + 'distanceunit', '');
    
    createHiddenInput (form, prefix + 'address', prefix + 'address', '');
    createHiddenInput (form, prefix + 'city', prefix + 'city', '');
    createHiddenInput (form, prefix + 'stateProvince', prefix + 'stateProvince', '');
    createHiddenInput (form, prefix + 'postalCode', prefix + 'postalCode', '');
    createHiddenInput (form, prefix + 'Phone', prefix + 'Phone', '');
    createHiddenInput (form, prefix + 'BrNumber', prefix + 'BrNumber', '');
    createHiddenInput (form, prefix + 'BnkNumber', prefix + 'BnkNumber', '');
    createHiddenInput (form, prefix + 'Code', prefix + 'Code', '');

    var div = createDiv (form, 'row', '');
    var span = createSpan (div, 'drpSelect', '');
    var select = span.appendChild (document.createElement ('select'));
    
    var option = select.appendChild (document.createElement ('option'));
        option.value = '';
        option.appendChild (document.createTextNode ('--Select one of the following branches--'));
    
    for (x=0; x<searchResults.count; x++) {
        var currentrecord = searchResults.getAt[x];
        //select.appendChild (document.createTextNode ('name=branchlist'));
        var option = select.appendChild (document.createElement ('option'));
        var value  = currentrecord.name + "|";
            value += currentrecord.distance.value + "|";
            value += currentrecord.distance.units + "|";
            value += currentrecord.address + "|";
            value += currentrecord.city + "|";
            value += currentrecord.stateProvince + "|";
            value += currentrecord.postalCode + "|";
            value += currentrecord.userFields.user1 + "|";
            value += currentrecord.userFields.user7 + "|";
            value += currentrecord.userFields.user8 + "|";
            value += currentrecord.userFields.user6;
        option.value = value;
        var desc  = currentrecord.name + " - distance - " + currentrecord.distance.value + " - " + currentrecord.distance.units;
        option.appendChild (document.createTextNode (desc));
    }
    select.onchange = function () { mqChangeBranchInfo(this.options[this.selectedIndex].value, prefix) };
}

//function used to populate hidden inputs based on city/state selection from dropdown
function mqChangeBranchInfo(value, prefix) {
    var valText = value.split("|");
    var Name    = valText[0];
    var Distance  = valText[1];
    var distanceunit   = valText[2];
    var address  = valText[3];
    var city   = valText[4];
    var stateProvince  = valText[5];
    var postalCode   = valText[6];
    var Phone  = valText[7];
    var BrNumber   = valText[8];
    var BnkNumber  = valText[9];
    var Code   = valText[10];
    document.getElementById (prefix + 'Name').value             = Name;
    document.getElementById (prefix + 'Distance').value         = Distance;
    document.getElementById (prefix + 'distanceunit').value     = distanceunit;
    document.getElementById (prefix + 'address').value          = address;
    document.getElementById (prefix + 'city').value             = city;
    document.getElementById (prefix + 'stateProvince').value    = stateProvince;
    document.getElementById (prefix + 'postalCode').value       = postalCode;
    document.getElementById (prefix + 'Phone').value            = Phone;
    document.getElementById (prefix + 'BrNumber').value         = BrNumber;
    document.getElementById (prefix + 'BnkNumber').value        = BnkNumber;
    document.getElementById (prefix + 'Code').value             = Code;
}


//function used to display the search results
//does not start or begin table, only displays results as row
function mq_display_searchResults_SDAmap(container, searchResults) {
    if(!mq_ParamExists(searchResults))
        return;

    var tbody = document.createElement ('tbody');		//tbody.className='tablebdr';

    for(var count=0;count<searchResults.count;count++) {
        var loc = searchResults.getAt[count];

        var tr1 = document.createElement ('tr');
        var tr1td2 = document.createElement ('td');
            tr1td2.className = 'bgButtonBar_MapRequest';       
			tr1td2.appendChild (document.createTextNode (loc.number));
				if (mq_ParamExists(loc.name) && loc.name.length) {
						//var em = document.createElement ('em');
						tr1td2.appendChild (document.createTextNode ('    ' + loc.name));
						//tr1td2.appendChild (em);
				}
            	tr1td2.colSpan = 2;

	        tr1.appendChild (tr1td2);

        var tr2 = document.createElement ('tr');

            var tr2td1= document.createElement ('td');

            var tr2td2= document.createElement ('td');				tr2td2.className = 'searchresulttextleft';
				if (mq_ParamExists(loc.address) && loc.address.length) {
				 tr2td2.appendChild (document.createTextNode (loc.address));
				 tr2td2.appendChild (document.createElement ('br'));
				}
				if (mq_ParamExists(loc.city) && loc.city.length)
				 tr2td2.appendChild (document.createTextNode (loc.city + ', '));

				if (mq_ParamExists(loc.stateProvince) && loc.stateProvince.length) {
				 tr2td2.appendChild (document.createTextNode (loc.stateProvince));
				 bSpace=true;
				}
				if (mq_ParamExists(loc.postalCode) && loc.postalCode.length) {
				 if (bSpace) {
					 tr2td2.appendChild (document.createTextNode (' '));
				 }
				 tr2td2.appendChild (document.createTextNode (loc.postalCode));
				}
				if (mq_ParamExists(loc.country) && loc.country.length) {
				 if(bSpace) {
					 tr2td2.appendChild (document.createTextNode (' '));
				 }
				 tr2td2.appendChild (document.createTextNode (loc.country));
				}
                
				/* add phone field to the output if available */
				if (mq_ParamExists(loc.userFields.user1) && loc.userFields.user1 != '') {
					tr2td2.appendChild (document.createElement ('br'));
					tr2td2.appendChild (document.createTextNode( "Phone: " + loc.userFields.user1 ));
				}

            var tr2td3 = document.createElement ('td');
                tr2td3.className = 'searchresulttextright';
                if (mq_ParamExists(loc.distance)) {
                    var distance = loc.distance.value + (loc.distance.units == "mi" ? " miles" : " kilometers");
                } else {
                    var distance = '';
                }
                tr2td3.appendChild (document.createTextNode ("Distance: " + distance));

				/* Add branch type info to the output */
                var loctype = false;
                if (mq_ParamExists(loc.searchFields.search1) && loc.searchFields.search1 == "1") {
						loctype = "ATM";
				} else if (mq_ParamExists(loc.searchFields.search4) && loc.searchFields.search4 == "1") {
						loctype = "Branch";
				} else if (mq_ParamExists(loc.searchFields.search5) && loc.searchFields.search5 == "1") {
						loctype = "NatCity Investments";
				} else if (mq_ParamExists(loc.searchFields.search6) && loc.searchFields.search6 == "1") {
						loctype = "Private Client Group";
				}

				if (loctype) {
					tr2td3.appendChild (document.createElement ('br'));
					tr2td3.appendChild (document.createTextNode ("Services: " + loctype));
				}

				if (mq_ParamExists(loc.userFields.user5) && loc.userFields.user5 != '') {
					tr2td3.appendChild (document.createElement ('br'));
					tr2td3.appendChild (document.createTextNode ("Special features: " + loc.userFields.user5));
				    if (loc.userFields.user5 == "Voice-Guided ATM"){
				        tr2td3.appendChild (document.createTextNode ("    "));
				        var prevA = createA (tr2td3, 'javascript:openNewWindow("https://www.nationalcity.com/content/Locator/cs_voiceguidedatm.asp","NCC",10,10,360,390);', '');
				        prevA.appendChild (createImg (tr2td3, 'https://www.nationalcity.com/content/images/Locator/phone.gif', '', '', '', '', ''));
				        //createImg (tr2td3, 'phone.gif', '', '', '', '', '');
				    }
				}
				if (mq_ParamExists(loc.userFields.user3) && loc.userFields.user3 != '') {
					tr2td3.appendChild (document.createElement ('br'));
					tr2td3.appendChild (document.createTextNode (loc.userFields.user3));
				}
				if (mq_ParamExists(loc.userFields.user4) && loc.userFields.user4 != '') {
					tr2td3.appendChild (document.createElement ('br'));
					tr2td3.appendChild (document.createTextNode (loc.userFields.user4));
				}
                
        tr2.appendChild (tr2td2);
        tr2.appendChild (tr2td3);

        var tr3 = document.createElement ('tr');
        var tr3td = document.createElement ('td');
	    tr3td.appendChild (document.createTextNode ("        "));
        tr3td.colspan= 3
        tr3.appendChild (tr3td);

        var tr4 = document.createElement ('tr');
        var tr4td = document.createElement ('td');
	    tr4td.appendChild (document.createTextNode ("        "));
        tr4td.colspan= 3
        tr4.appendChild (tr4td);

        tbody.appendChild (tr1);
        tbody.appendChild (tr2);
        tbody.appendChild (tr3);
        tbody.appendChild (tr4);
                
        if(count < eval(searchResults.count)-1) {
            var tr2 = document.createElement ('tr');

                var td5 = document.createElement ('td');
                    td5.colSpan = 4;
            tr2.appendChild (td5);
            tbody.appendChild (tr2);
        }
        tbody.classname='tablebdr';
    }
    container.appendChild (tbody);
}

