From f1fdf34bb6d6e71b6a7555e486d99734423158f6 Mon Sep 17 00:00:00 2001
From: miker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Date: Fri, 12 Feb 2010 16:40:37 +0000
Subject: [PATCH] Addressing https://bugs.launchpad.net/evergreen/+bug/520632

git-svn-id: svn://svn.open-ils.org/ILS/trunk@15521 dcc99617-32d9-48b4-a31d-7c20da2025e4
---
 Open-ILS/web/opac/common/js/opac_utils.js | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/Open-ILS/web/opac/common/js/opac_utils.js b/Open-ILS/web/opac/common/js/opac_utils.js
index 7d739f9cf2..e005b1c9b5 100644
--- a/Open-ILS/web/opac/common/js/opac_utils.js
+++ b/Open-ILS/web/opac/common/js/opac_utils.js
@@ -88,7 +88,7 @@ function findCurrentPage() {
 		path += "index.xml"; /* in case they go to  / */
 
 	var page = null;
-	for( var p in pages ) {
+	for( var p = 0; p < pages.length; p++ ) {
 		if( path.indexOf(pages[p]) != -1)
 			page = pages[p];
 	}
@@ -1018,8 +1018,11 @@ function buildOrgSel(selector, org, offset, namecol) {
     if(!isXUL() && !isTrue(org.opac_visible())) return;
 	insertSelectorVal( selector, -1, 
 		org[namecol](), org.id(), null, findOrgDepth(org) - offset );
-	for( var c in org.children() )
-		buildOrgSel( selector, org.children()[c], offset, namecol);
+    var kids = org.children();
+    if (kids) {
+	    for( var c = 0; c < kids.length; c++ )
+		    buildOrgSel( selector, org.children()[c], offset, namecol);
+    }
 }
 
 function buildMergedOrgSel(selector, org_list, offset, namecol) {
@@ -1028,8 +1031,11 @@ function buildMergedOrgSel(selector, org_list, offset, namecol) {
         var org = findOrgUnit(org_list[i]);
     	insertSelectorVal( selector, -1, 
 		    org[namecol](), org.id(), null, findOrgDepth(org) - offset );
-	    for( var c in org.children() )
-		    buildOrgSel( selector, org.children()[c], offset, namecol);
+        var kids = org.children();
+        if (kids) {
+	        for( var c = 0; c < kids.length; c++ )
+		        buildOrgSel( selector, org.children()[c], offset, namecol);
+        }
     }
 }
 
@@ -1063,7 +1069,8 @@ function parseForm(form) {
 function isTrue(x) { return ( x && x != "0" && !(x+'').match(/^f$/i) ); }
 
 function fetchPermOrgs() {
-	var a = []; /* why does arguments come accross as an object and not an array? */
+	var a = []; /* Q: why does arguments come accross as an object and not an array? A: because arguments is a special object, a collection */
+
 	for( var i = 0; i < arguments.length; i++ ) 
 		a.push(arguments[i])
 
-- 
2.11.0