JavaScript error reported on line 107 but view source shows it is not on 107 how can I find the line?
JavaScript error reported on line 107 but view source shows it is not on 107 how can I find the line? This is in a cold fusion page which pulls in external javaScript
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><cfoutput><cfset urlhome="../../"><cfset adminbase="streams/admin/"><cfparam name="url.returnto" default="#urlhome##adminbase#attributeEdit.cfm?attributeid=#url.attributeid#"><cfquery name="getAllAttributeNames" datasource="#application.ds#">select attribute from aattribute order by attribute</cfquery><cfquery name="getThisAttribute" datasource="#application.ds#"> select aa.attributetypeid,attributetype,attributeid,attribute,attributelyris,manager=personfirstname + ' ' + personlastname,attributeeditlevel,attributecategory,attributemanager, cat= case attributecategory when 'C' then 'Company' when 'A' then 'Assembly' when 'S' then 'Senate' else 'People' end from aattribute aa inner join tattribute ta on ta.attributetypeid=aa.attributetypeid left join apeople ap on ap.personid=aa.attributemanager where attributeid=#url.attributeid#</cfquery><cfquery name="getAttributeTypes" datasource="#application.ds#"> select *, cat= case attributecategory when 'C' then 'Company' when 'A' then 'Assembly' when 'S' then 'Senate' else 'People' end from tattribute where attributecategory = '#getThisAttribute.attributecategory#' order by attributecategory,attributetype</cfquery><cfquery name="getEligiblePeople" datasource="#application.ds#"> select personlastname,personfirstname,companyname,ap.personid,companyid from apeople ap inner join acompany ac on ac.companyid=ap.personcid where ap.personid in(select au.personid from auser au where userlevel>0) order by personlastname,personfirstname </cfquery><cfquery name="getUnlinkedLyrisLists" datasource="#application.ds#"> select list=name_ from lyris..lists_ ly where not name_ in(select attributelyris from aattribute where attributelyris is not null) union select list=name_ from lyris..lists_ where name_='#getthisattribute.attributelyris#' order by name_</cfquery><cfif getThisAttribute.attributelyris neq ""> <cfquery name="onListUnlinked" datasource="#application.ds#"> select personid=coalesce(mwpersonid,0), person=coalesce(mwpersonname,coalesce(fullname_,'**No Person Name')), company=coalesce(mwcompanyname,'** No Company Affiliation'), email=coalesce(emailaddr_ ,'**No eMail'), atid='' from lyris..members_ where list_ = '#getThisAttribute.attributelyris#' and mwpersonid is null </cfquery> <cfquery name="onListBrokenLink" datasource="memberwebdb"> select personid=coalesce(mwpersonid,0), person=coalesce(mwpersonname,coalesce(fullname_,'**No Person Name')), company=coalesce(mwcompanyname,'** No Company Affiliation'), email=coalesce(emailaddr_ ,'**No eMail'), atid=rapaa.personid, dupemail = case when exists(select * from lyris..members_ where list_='#getThisAttribute.attributelyris#' and emailaddr_=ap.personemail) then 1 else 0 end from lyris..members_ mem left join rapeopleaattribute rapaa on rapaa.personid=mwpersonid and attributeid='#url.attributeid#' left join apeople ap on ap.personid=mwpersonid where list_ = '#getThisAttribute.attributelyris#' and mwpersonid is not null and rapaa.personid is null </cfquery> <cfquery name="getWidths" datasource="memberwebdb">select lp=max(len(personfirstname))+max(len(personlastname))+max(len(personmiddlename))+5,lc=max(len(personcompany))+5,le=max(len(personemail))+5 from apeople</cfquery> <cfquery name="onAttributeUnlinked" datasource="#application.ds#"> select rapaa.personid, person=coalesce(personfirstname + ' ' + personlastname,'**No Person Name'), company=coalesce(personcompany,coalesce(companyname,'** No Company Affiliation')), email= case coalesce(personemail ,'**No eMail') when ' ' then '**No eMail' else coalesce(personemail ,'**No eMail') end, dupemail = case when exists(select * from lyris..members_ where list_='#getThisAttribute.attributelyris#' and emailaddr_=ap.personemail) then 1 else 0 end from rapeopleaattribute rapaa inner join apeople ap on ap.personid=rapaa.personid left join acompany ac on ac.companyid = ap.personcid inner join aattribute aa on aa.attributeid=rapaa.attributeid left join lyris..members_ mem on mem.list_=aa.attributelyris and mwpersonid=rapaa.personid where mwpersonid is null and attributelyris is not null and rapaa.attributeid=#url.attributeid# </cfquery> <cfquery name="onBoth" datasource="#application.ds#"> select personid=coalesce(mwpersonid,0), person=coalesce(mwpersonname, '**No Person Name'),company=coalesce(mwcompanyname,'** No Company Affiliation'), email=coalesce(emailaddr_ ,'**No eMail') from rapeopleaattribute rapaa inner join lyris..members_ mem on list_ = '#getThisAttribute.attributelyris#' and mwpersonid=personid where attributeid=#url.attributeid# order by mwpersonname </cfquery></cfif><html> <head> <title>Attribute Edit</title> <link rel="stylesheet" href="#urlhome#css/std.css"><!--- Bring in external stylesheet ---> <script language="JavaScript" src="#urlhome#js/std.js"></script><!--- Bring in external javascript ---> <script language="JavaScript"> var aryNames = new Array(); </cfoutput> <cfoutput query="getAllAttributeNames"> aryNames[#currentrow#-1]="#attribute#" </cfoutput> <cfoutput> function compareNumbersAsc(s1,s2){ var i1=parseInt(s1);var i2=parseInt(s2); if(i1<i2)return -1; if(i1>i2)return 1; return 0;1; } function compareNumbersDesc(s1,s2){ var i1=parseInt(s1);var i2=parseInt(s2); if(i1<i2)return 1; if(i1>i2)return -1; return 0;1; } function compareStringsAsc(s1,s2){ return s1.localeCompare(s2); } function compareStringsDesc(s1,s2){ return -s1.localeCompare(s2); } function compareTableRows(oTr1,oTr2){ var sValue1=oTr1.cells[0].firstChild.nodeValue; var sValue2=oTr2.cells[0].firstChild.nodeValue; return sValue1.localeCompare(sValue2); } function convert(sValue, sDataType){ switch(sDataType){ case "int": return parseInt(sValue); case "float": return parseFloat(sValue); case "date": return new Date(Date.parse(sValue)); default: return sValue.toString(); } } function generateCompareTableRows(iCol, sDataType){ return function compareTableRows(oTr1,oTr2){ var vValue1=convert(oTr1.cells[iCol].firstChild.nodeValue, sDataType); var vValue2=convert(oTr2.cells[iCol].firstChild.nodeValue, sDataType); if(vValue1<vValue2){ return -1; } else if(vValue1>vValue2){ return 1; } else { return 0; } } } function setMessage(msg){ var oMessage = document.getElementById('lblMessage'); oMessage.size = msg.length; oMessage.value = msg; } function sortTable(sTableId,iCol,sDataType){ var oTable = document.getElementById(sTableId);//get a reference to the table var oTbody = oTable.tBodies[0];//get a reference to the table body var colDataRows = oTbody.rows;//get a reference to the rows collection of the body var aTr = new Array;//create an array to hold the data from the rows collection for(var i=0;i<colDataRows.length;i++){ aTr.push(colDataRows[i]);//push the data from each row into the array } if(oTable.sortCol==iCol){ aTr.reverse(); } else{ aTr.sort(generateCompareTableRows(iCol,sDataType)); } var oFragment = document.createDocumentFragment(); for(var i=0; i< aTr.length; i++){ oFragment.appendChild(aTr[i]); } oTbody.appendChild(oFragment); oTable.sortCol = iCol; setMessage(' '); } function doSort(name,id){ var oSorts = document.getElementsByName(name); for (var i=0; i<oSorts.length;i++){ if (oSorts[i].id==id){ //alert(oSorts[i].src); switch (oSorts[i].src){ case "http://192.168.1.47/images/arrowcircle.jpg" : oSorts[i].src = "#urlhome#images/arrowupcircle.jpg"; break; case "http://192.168.1.47/images/arrowdowncircle.jpg" : oSorts[i].src = "#urlhome#images/arrowupcircle.jpg"; break; case "http://192.168.1.47/images/arrowupcircle.jpg" : oSorts[i].src = "#urlhome#images/arrowdowncircle.jpg"; default: break; } } else{ oSorts[i].src = "#urlhome#images/arrowcircle.jpg"; } } } function popWin(url){ //alert('In pws: ' + url); var popurl=url; winpops=window.open(popurl,"","height=" + (screen.availHeight - 100) + ",width=" + (screen.availWidth - 100) + ",top=50,left=50,status=yes,scrollbars=yes,resizable=no"); } <!--- javascript to refresh template on return from pop up window ---> function doRefresh(){ dummyDate = new Date(); dummyParameter = dummyDate.getTime(); alert("Action Finished!!"); self.location.href="#urlhome#streams/admin/attributeEdit.cfm"; } </script> </head> <body> <form name="formAttributeEdit" id="attributeEdit" action="#urlhome#streams/admin/attributeUpdate.cfm" method="post"> <input type="Hidden" name="successUrl" value="#urlhome#streams/admin/attributeEdit.cfm?attributeid=#url.attributeid#"> <input type="Hidden" name="errorUrl" value="#urlhome#streams/admin/attributeEdit.cfm?attributeid=#url.attributeid#&error="> <input type="Hidden" name="editMe" id="editMe" value="#urlhome##adminbase#fixPerson2ListLink.cfm"> <input type="Hidden" name="returnTo" id="returnTo" value="#urlhome##adminbase#wwAttributes.cfm"> <table> <tr><td><img src="#urlhome#images/bluesubmit.gif" onclick="submit();"> <img src="#urlhome#images/bluecancel.gif" onclick="adminCancel();"> <input type="text" class="message" id="lblMessage" readonly></td></tr> </table> <table id="tblAttribute" cellpadding="2" cellspacing="2" class="tblContainer"> <thead class="tableHeader"> <tr> <th scope="col">Item</th> <th scope="col">Current</th> <th scope="col">New</th> </tr> </thead> <tbody> <tr> <td class="tableHeader">Attribute Category </td> <td class="updateField">#getThisAttribute.cat# </td> <td class="staticField"> </td> <tr> <td class="tableHeader">Attribute Group </td> <td class="updateField">#getThisAttribute.attributetype# </td> <td class="updateField"><span id="selborder" class="spanSelect"> <select name="attributeTypeid" id="selAttributeTypeId"> </cfoutput> <cfoutput query="getAttributeTypes"> <option id="#attributetypeid#" value="#attributetypeid#" <cfif attributetypeid eq getThisAttribute.attributetypeid> selected</cfif>>#attributetype#</option> </cfoutput> </select> <cfoutput> </span> </td> </tr> <tr> <td class="tableHeader">Attribute ID </td> <td class="updateField">#getThisAttribute.attributeid#<input type="Hidden" name="attributeid" id="attributeid" value="#url.attributeid#"> </td> <td class="staticField"> </td> </tr> <tr> <td class="tableHeader">Attribute Description </td> <td class="updateField">#getThisAttribute.attribute# </td> <td class="updateField"><input type="Text" name="attribute" id="attribute" value="#getThisAttribute.attribute#" onblur="checkNameChange(this,'#getThisAttribute.attribute#',aryNames);" size="50" maxlength="50" onfocus="this.select();"><input type="Hidden" id="hattribute.attribute" value="#getThisAttribute.attribute#"></td> </tr> <tr> <td class="tableHeader">Attribute Manager </td> <td class="updateField">#getThisAttribute.manager# </td> <td class="updateField"><span id="selborder" class="spanSelect"> <select name="attributeManager" id="selAttributeManager"> </cfoutput> <cfoutput query="getEligiblePeople"> <option id="#personid#" value="#personid#" <cfif personid eq getThisAttribute.attributemanager> selected</cfif>>#personfirstname# #personlastname# (#companyname#)</option> </cfoutput> </select> <cfoutput> </span> </td> </tr> <tr> <td class="tableHeader">Attribute Edit Level </td> <td class="updateField">#getThisAttribute.attributeeditlevel#</td> <td class="updateField"><span id="selborder" class="spanSelect"> <select name="attributeEditLevel" id="selAttributeEditLevel"> <option id="el1" value="1" <cfif 1 eq getThisAttribute.attributeeditlevel> selected</cfif>>1 (Lowest Level)</option> <option id="el2" value="2" <cfif 2 eq getThisAttribute.attributeeditlevel> selected</cfif>>2 </option> <option id="el3" value="3" <cfif 3 eq getThisAttribute.attributeeditlevel> selected</cfif>>3 (Password Manager)</option> <option id="el4" value="4" <cfif 4 eq getThisAttribute.attributeeditlevel> selected</cfif>>4 (Directory Editor)</option> </select> </span> </td> </tr> <tr> <td class="tableHeader">Linked Lyris List </td> <td class="updateField">#getThisAttribute.attributelyris# </td> <td class="updateField"> <span id="selborder" class="spanSelect"> <select name="attributelyris" id="selLyrisLink"> </cfoutput> <option id="notLinked" value="" <cfif #getThisAttribute.attributelyris# eq "">selected</cfif>>Currently Not Linked</option> <cfoutput query="getUnlinkedLyrisLists"> <option id="#list#" value="#list#" <cfif list eq getThisAttribute.attributelyris> selected</cfif>>#list#</option> </cfoutput> </select> </span> </td> </tr> <cfif getThisAttribute.attributelyris neq ""> <tr> <td colspan="4"> <table> <cfoutput> <tr><td colspan="4"><img src="#urlhome#images/spacer.gif" height="10px"></td></tr> <tr class="tableHeader"><td>#onListUnlinked.recordcount# people on this list but not linked with MemberWeb Click on the person email to remove from Lyris</td></tr> </cfoutput> <cfif onListUnlinked.recordcount gt 0> <tr><td> <table border="1" id="tblOLU" width="100%"> <thead> <cfoutput> <th class="columnHeader" onclick="setMessage('Sorting by personid... please wait');setTimeout('sortTable(\'tblOLU\',0,\'int\')',200);doSort('olsort','oluid');" style="cursor:hand;"><img name="olsort" id="oluid" src="#urlhome#images/arrowcircle.jpg"> ID</th> <th class="columnHeader" onclick="setMessage('Sorting by first name... please wait');setTimeout('sortTable(\'tblOLU\',1)',200);doSort('olsort','oluname');" style="cursor:hand;"><img name="olsort" id="oluname" src="#urlhome#images/arrowcircle.jpg">Name</th> <th class="columnHeader" onclick="setMessage('Sorting by last name... please wait');setTimeout('sortTable(\'tblOLU\',2)',200);doSort('olsort','oauemail');" style="cursor:hand;"><img name="olsort" id="oauemail" src="#urlhome#images/arrowcircle.jpg">Email</th> <th class="columnHeader" onclick="setMessage('Sorting by eMail... please wait');setTimeout('sortTable(\'tblOLU\',3)',200);doSort('olsort','olucompany');" style="cursor:hand;"><img name="olsort" id="olucompany" src="#urlhome#images/arrowcircle.jpg"> Company</th> </cfoutput> </thead> <tbody> <cfoutput query="onListUnlinked"> <tr><td class="updateField" width="50">#personid#</td><td class="updateField" width="250">#person#</td><td class="updateField" width="400"><cfif email neq ""><a onclick="popWin('removeFromLyris.cfm?list=#getThisAttribute.attributelyris#&email=#email#')" style="cursor:hand;text-decoration:underline;color:blue;">#email#</a></cfif></td><td class="updateField">#company#<img src="#urlhome#images/spacer.gif"></td></tr> </cfoutput> </tbody> </table> </td></tr> </cfif> <cfif client.personid eq 7414> <cfoutput> <tr><td colspan="4"><img src="#urlhome#images/spacer.gif" height="10px"></td></tr> <tr class="tableHeader"><td>#onListBrokenLink.recordcount# <cfif onListBrokenLink.recordcount eq 1>person on this list has a broken link<cfelse>people are on this list have a broken link</cfif> Click on the person email to fix the link</td></tr> </cfoutput> <cfif onListBrokenLink.recordcount gt 0> <tr><td> <table border="1" id="tblOAU" width="100%"> <thead> <cfoutput> <th class="columnHeader" onclick="setMessage('Sorting by personid... please wait');setTimeout('sortTable(\'tblOAU\',0,\'int\')',200);doSort('oasort','oauid');" style="cursor:hand;"><img name="oasort" id="oauid" src="#urlhome#images/arrowcircle.jpg"> ID</th> <th class="columnHeader" onclick="setTimeout('sortTable(\'tblOAU\',1)',200);doSort('oasort','oauname');setMessage('Sorting by first name... please wait');" style="cursor:hand;"><img name="oasort" id="oauname" src="#urlhome#images/arrowcircle.jpg"> Name</th> <th class="columnHeader" onclick="setMessage('Sorting by last name... please wait');setTimeout('sortTable(\'tblOAU\',2)',200);doSort('oasort','oauemail');" style="cursor:hand;"><img name="oasort" id="oauemail" src="#urlhome#images/arrowcircle.jpg"> Email</th> <th class="columnHeader" onclick="setMessage('Sorting by eMail... please wait');setTimeout('sortTable(\'tblOAU\',3)',200);doSort('oasort','oaucompany');" style="cursor:hand;"><img name="oasort" id="oaucompany" src="#urlhome#images/arrowcircle.jpg"> Company</th> </cfoutput> </thead> <tbody> <cfoutput query="onListBrokenLink"> <tr><td class="updateField" width="50">#personid#</td><td class="updateField" width="250">#person#</td><td class="updateField" width="400"><cfif email neq ""><a onclick="document.getElementById('editMe').value += '?list=#getThisAttribute.attributelyris#&email=#email#&personid=#personid#&attributeid=#url.attributeid#';" style="cursor:hand;text-decoration:underline;color:blue;">#email#</a></cfif></td><td class="updateField">#company#</td></tr> </cfoutput> </tbody> </table> </td></tr> </cfif> </cfif> <cfoutput> <tr><td colspan="4"><img src="#urlhome#images/spacer.gif" height="10px"></td></tr> <tr class="tableHeader"><td>#onAttributeUnlinked.recordcount# <cfif onAttributeUnlinked.recordcount eq 1>person this attribute checked but is not on this list<cfelse>people have this attribute checked but are not on this list</cfif> Click on the person email to add to Lyris</td></tr> </cfoutput> <cfif onAttributeUnlinked.recordcount gt 0> <tr><td> <table border="1" id="tblOAU" width="100%"> <thead> <cfoutput> <th class="columnHeader" onclick="setMessage('Sorting by personid... please wait');setTimeout('sortTable(\'tblOAU\',0,\'int\')',200);doSort('oasort','oauid');" style="cursor:hand;"><img name="oasort" id="oauid" src="#urlhome#images/arrowcircle.jpg"> ID</th> <th class="columnHeader" onclick="setTimeout('sortTable(\'tblOAU\',1)',200);doSort('oasort','oauname');setMessage('Sorting by first name... please wait');" style="cursor:hand;"><img name="oasort" id="oauname" src="#urlhome#images/arrowcircle.jpg"> Name</th> <th class="columnHeader" onclick="setMessage('Sorting by last name... please wait');setTimeout('sortTable(\'tblOAU\',2)',200);doSort('oasort','oauemail');" style="cursor:hand;"><img name="oasort" id="oauemail" src="#urlhome#images/arrowcircle.jpg"> Email</th> <th class="columnHeader" onclick="setMessage('Sorting by eMail... please wait');setTimeout('sortTable(\'tblOAU\',3)',200);doSort('oasort','oaucompany');" style="cursor:hand;"><img name="oasort" id="oaucompany" src="#urlhome#images/arrowcircle.jpg"> Company</th> </cfoutput> </thead> <tbody> <cfoutput query="onAttributeUnlinked"> <cfif dupemail> <tr><td class="updateField" width="50">#personid#</td><td class="updateField" width="250">#person#</td><td class="updateField" width="400"><cfif email neq ""><a onclick="alert('This email is already on the list')" style="cursor:hand;text-decoration:underline;color:red;">#email#</a></cfif></td><td class="updateField">#company#</td></tr> <cfelse> <tr><td class="updateField" width="50">#personid#</td><td class="updateField" width="250">#person#</td><td class="updateField" width="400"><cfif email neq ""><a onclick="popWin('addToLyris.cfm?list=#getThisAttribute.attributelyris#&email=#email#&personid=#personid#&attributeid=#url.attributeid#')" style="cursor:hand;text-decoration:underline;color:blue;">#email#</a></cfif></td><td class="updateField">#company#</td></tr> </cfif> </cfoutput> </tbody> </table> </td></tr> </cfif> <cfoutput> <tr><td colspan="4"><img src="#urlhome#images/spacer.gif" height="10px"></td></tr> <tr class="tableHeader"><td>#onboth.recordcount# <cfif onboth.recordcount eq 1>person<cfelse>people on this list linked to MemberWeb</cfif></td></tr> </cfoutput> <cfif onboth.recordcount gt 0> <tr><td> <table border="1" id="tblOB" width="100%"> <thead> <cfoutput> <th class="columnHeader" onclick="setMessage('Sorting by personid... please wait');setTimeout('sortTable(\'tblOB\',0,\'int\')',200);doSort('obsort','obid');" style="cursor:hand;"><img name="obsort" id="obid" src="#urlhome#images/arrowcircle.jpg"> ID</th> <th class="columnHeader" onclick="setMessage('Sorting by first name... please wait');setTimeout('sortTable(\'tblOB\',1)',200);doSort('obsort','obname');" style="cursor:hand;"><img name="obsort" id="obname" src="#urlhome#images/arrowcircle.jpg"> Name</th> <th class="columnHeader" onclick="setMessage('Sorting by last name... please wait');setTimeout('sortTable(\'tblOB\',2)',200);doSort('obsort','obemail');" style="cursor:hand;"><img name="obsort" id="obemail" src="#urlhome#images/arrowcircle.jpg">Email</th> <th class="columnHeader" onclick="setMessage('Sorting by eMail... please wait');setTimeout('sortTable(\'tblOB\',3)',200);doSort('obsort','obcompany');" style="cursor:hand;"><img name="obsort" id="obcompany" src="#urlhome#images/arrowcircle.jpg"> Company</th> </cfoutput> </thead> <tbody> <cfoutput query="onBoth"> <cfif email eq ""> <tr style="color:red;"><td class="updateField" width="50">#personid#</td><td class="updateField" width="250">#person#</td><td class="updateField" width="400">#email#</td><td class="updateField">#company#</td></tr> <cfelse> <tr><td class="updateField" width="50">#personid#</td><td class="updateField" width="250">#person#</td><td class="updateField" width="400">#email#</td><td class="updateField">#company#</td></tr> </cfif> </cfoutput> </tbody> </table> </td></tr> </cfif> </table> </td> </tr> </cfif> <cfoutput> </tbody> </table> </form> </body></cfoutput></html>
1. The syntax error does not show up in firefox.
2. Using view sorce on the rendered page does not work because line 107 is one of the array loads in the cfoutput and it is fine - just like all the rest - so the error line and the rendered page line are not the same
3. The switch works fine with the return instead of the break - that code is used in multiple programs without a problem
The problem turned out to be a double }} in the external JavaScript. I found it by replacing the <script language="JavaScript" src="#urlhome#js/std.js"></script> with the actual code. Thanks to all for responding.
twalker916
ASKER
Found the problem by replacing the <script language="JavaScript" src="#urlhome#js/std.js"></script> with the actual code, then the view source showed the actual line.