//Portal Analytical Chemistry in Russia (Copyright) //------------------------------------------------- //Menu functions //To make working copy, save additioanlly this file AS MENU.ASP !!! //================================================================== // /*Versions: November, 01, 2002 (vpk) css is used November, 10, 2002 (vis) setting of links March, 03, 2003 (vpk) asp links are included March, 23, 2003 (vpk) visitors/session counter is added April, 03, 2003 (vpk) removing of some items not used anymore (loke some Introductions) April, 11, 2003 (vpk) Oborudovanie via *.asp April, 14, 2003 (vpk) possibility to load frame as external page (start from any page) April, 14, 2003 (vpk) conferences June, 18, 2003 (vis) Publications item is commented March, 01, 2004 (vis) Slide changhing of menu June, 07, 2004 (vpk) new page, set as news_js_faster.asp (instead of news_js.asp) October, 15, 2009 (vpk) WSS site link- is on, Search- is off */ // This global array holds all the tree nodes var nodes_array = new Array() // This global variable holds the currently displayed document var current_document = -1 //Open folders (2 levels from level 1) var Folder1= "Главная папка" var Folder2= "" var FolderBanner= Folder1 var szNsakhShort= "НСАХ РАН" var szNsakhFull= "Научный Совет по аналитической химии РАН (НСАХ РАН)" var iVisitorsCounter var iSessionCounter // Pre-load the images var temp_image = new Image(22, 16) temp_image.src = "open.gif" var temp_image = new Image(22, 16) temp_image.src = "closed.gif" var temp_image = new Image(18, 13) temp_image.src = "plus.gif" var temp_image = new Image(18, 13) temp_image.src = "minus.gif" var temp_image = new Image(22, 16) temp_image.src = "open_page.gif" var temp_image = new Image(22, 16) temp_image.src = "closed_page.gif" //Place for direct code // This function creates a node in the tree with the following arguments: // level - The level within the tree hierarchy (0 = top) // index - The node's index within the global nodes_array // text - The text displayed in the tree for this node // state - Folder: "open" (expanded) or "closed" (collapsed) // Document: "open" (displayed) or "closed" (hidden) // url - For a document, the address it will display when clicked function node_data (level, index, text, state, url) { this.level = level this.index = index this.text = text this.state = state this.url = url } // This function creates a node in the tree; the // arguments are used by the node_data() function function create_node(level, text, state, url) //============================================ { // Create a new node array var new_node = new Array() // Put it in the global nodes_array var nodes_index = nodes_array.length nodes_array[nodes_index] = new_node // The first item in the array is the node_data object new_node[0] = new node_data(level, nodes_index, text, state, url) // Return the array return new_node } // This function adds a child to an existing parent node function add_child(parent_node, child_node) //============================================ { // We're adding an item to the parent's array, so the array's // current length represents the next index of that array var next_index = parent_node.length // Add the child node to the parent's array parent_node[next_index] = child_node // Return the child return child_node } // This function builds the node of the navigation tree function build_tree() //============================================ { // Begin with the main node main_node = create_node(0, " ", "open", "") //*****was closed // Add the child nodes level1_node = add_child(main_node, create_node(1, "Новости", "closed", "news_js.asp")) level1_node = add_child(main_node, create_node(1, "О портале", "closed", "about.htm")) //level1_node = add_child(main_node, create_node(1, "Поиск на сайте", "closed", "Search_form.htm")) level1_node = add_child(main_node, create_node(1, "Интерактивные (wss) сайты", "closed", "http://194.67.119.6:83/wss/default.aspx")) level1_node = add_child(main_node, create_node(1, "Регистрация", "closed", "ClientLog/ClientEnter.asp")) level1_node = add_child(main_node, create_node(1, szNsakhShort, "closed", "")) //"НСАХ РАН" level2_node = add_child(level1_node, create_node(2, "Предисловие", "closed", "nsach/about.htm")) level2_node = add_child(level1_node, create_node(2, "Бюро Совета", "closed", "nsach/Burea_ns.htm")) level2_node = add_child(level1_node, create_node(2, "Члены Совета", "closed", "nsach/Members_ns.htm")) level2_node = add_child(level1_node, create_node(2, "Комиссии", "closed", "nsach/Commissions/list_comissions.htm")) level2_node = add_child(level1_node, create_node(2, "Отделения", "closed", "nsach/Divisions/list_divisions.htm")) level2_node = add_child(level1_node, create_node(2, "Ассоциации", "closed", "nsach/Associations/Content_assosiations.htm")) level2_node = add_child(level1_node, create_node(2, "Рабочие группы", "closed", "nsach/Work_group/list_work_group.htm")) level2_node = add_child(level1_node, create_node(2, "Организации", "closed", "nsach/Organizations/List_organizations.htm")) level2_node = add_child(level1_node, create_node(2, "Годичные сессии", "closed", "nsach/Annual sessions/List of annual sessions.htm")) level2_node = add_child(level1_node, create_node(2, "Документы", "closed", "")) level3_node = add_child(level2_node, create_node(3, "Отчеты", "closed", "nsach/Reports/List of Reports.htm")) level1_node = add_child(main_node, create_node(1, "Кто есть кто...", "closed", "")) level2_node = add_child(level1_node, create_node(2, "О справочнике", "closed", "who_is_who/about.htm")) level2_node = add_child(level1_node, create_node(2, "Предисловие", "closed", "who_is_who/about_who.htm")) level2_node = add_child(level1_node, create_node(2, "Указатель", "closed", "who_is_who/pointer.htm")) level2_node = add_child(level1_node, create_node(2, "Доктора наук", "closed", "who_is_who/pointer_doctor.htm")) level1_node = add_child(main_node, create_node(1, "Журналы", "closed", "")) level2_node = add_child(level1_node, create_node(2, "ЖАХ", "closed", "http://194.67.119.21:89")) level2_node = add_child(level1_node, create_node(2, "Заводская лаб.", "closed", "http://phase.imet.ac.ru/zavlabor/")) level2_node = add_child(level1_node, create_node(2, "Аналитика и контроль", "closed", "http://www.aik.ru/")) //level2_node = add_child(level1_node, create_node(2, "Лабораторный журнал", "closed", "http://www.lab-press.ru/")) level2_node = add_child(level1_node, create_node(2, "Все журналы", "closed", "Resources/GetResources.asp?IdN=20000&Table=ResourcesTypes")) level1_node = add_child(main_node, create_node(1, "Конференции, выставки", "closed", "")) level2_node = add_child(level1_node, create_node(2, "Российские", "closed", "conferences.asp?Selection=RussiaOnly")) level2_node = add_child(level1_node, create_node(2, "Все(по дате)", "closed", "conferences.asp?Selection=AllOpenDate")) level2_node = add_child(level1_node, create_node(2, "Все(по странам)", "closed", "conferences.asp?Selection=AllCountry")) level2_node = add_child(level1_node, create_node(2, "Выставки", "closed", "conferences.asp?Selection=JustExibitions")) level2_node = add_child(level1_node, create_node(2, "Архив", "closed", "conferences.asp?Selection=Archive")) level1_node = add_child(main_node, create_node(1, "Московские семинары", "closed", "")) level2_node = add_child(level1_node, create_node(2, "Планируемые", "closed", "nsach/seminar/MoscowSemsSQL_vb.asp")) level2_node = add_child(level1_node, create_node(2, "Архив", "closed", "")) level3_node = add_child(level2_node, create_node(3, "ГЕОХИ РАН", "closed", "nsach/seminar/Archive_Sem_GEOKHI.asp")) level3_node = add_child(level2_node, create_node(3, "МГУ", "closed", "nsach/seminar/Archive_Sem_MGU.asp")) level1_node = add_child(main_node, create_node(1, "Оборудование", "closed", "")) //level2_node = add_child(level1_node, create_node(2, "Введение", "closed", "Equipment/list_quipment.htm")) level2_node = add_child(level1_node, create_node(2, "Приборы", "closed", "Resources/GetResources.asp?IdN=1000&Table=ClientProfile")) level2_node = add_child(level1_node, create_node(2, "Лабораторное оборуд.", "closed", "Resources/GetResources.asp?IdN=2000&Table=ClientProfile")) level2_node = add_child(level1_node, create_node(2, "Реактивы", "closed", "Resources/GetResources.asp?IdN=1700&Table=ClientProfile")) level2_node = add_child(level1_node, create_node(2, "Средства защиты", "closed", "Resources/GetResources.asp?IdN=1800&Table=ClientProfile")) level2_node = add_child(level1_node, create_node(2, "Мебель", "closed", "Resources/GetResources.asp?IdN=1900&Table=ClientProfile")) level1_node = add_child(main_node, create_node(1, "Ресурсы WWW", "closed", "")) //level2_node = add_child(level1_node, create_node(2, "Введение", "closed", "Resources/about_res.htm")) level2_node = add_child(level1_node, create_node(2, "Рубрикация", "closed", "Resources/ShowTypes.asp")) level1_node = add_child(main_node, create_node(1, "История", "closed", "")) level2_node = add_child(level1_node, create_node(2, "Публикации", "closed", "History/publ-history.htm")) //show home page (News) if (current_document == 1) frames["content_frame"].location = "news_js_faster.asp" // Write the navigation menu timeout_id = setTimeout("write_menu()", 50) } function write_menu() //============================================ { Folder1= "Главная папка" Folder2= "" // Clear the frame and write the basic opening tags frames["tree_frame"].document.clear() //March, 23, 2003: frames["tree_frame"].document.writeln('') frames["tree_frame"].document.writeln('') frames["tree_frame"].document.writeln('') frames["tree_frame"].document.writeln('') frames["tree_frame"].document.writeln('Menu Frame') frames["tree_frame"].document.writeln('<\/title>') frames["tree_frame"].document.writeln('<LINK REL=STYLESHEET HREF= "css/rac_menu.css">') frames["tree_frame"].document.writeln('<\/head>') frames["tree_frame"].document.writeln('<body>') frames["tree_frame"].document.writeln('Меню:') frames["tree_frame"].document.writeln('<a href="javascript:parent.change_all(\'open\')"><img src="images/plus.gif" border="0"></a>') frames["tree_frame"].document.writeln('<a href="javascript:parent.change_all(\'closed\')"><img src="images/minus.gif" border="0"></a>') frames["tree_frame"].document.writeln('<hr>') // Create a table for each node frames["tree_frame"].document.writeln('<table border="0" cellspacing="0" cellpadding="0">') /* // Write the main node frames["tree_frame"].document.writeln('<tr>') frames["tree_frame"].document.writeln('<td valign="top">') frames["tree_frame"].document.writeln('<a href="javascript:parent.toggle_state(\'' + main_node[0].index + '\')">') if (main_node[0].state == "closed") { frames["tree_frame"].document.writeln('<img src="images/plus.gif" border="0"></a><img src="images/closed.gif">') } else { frames["tree_frame"].document.writeln('<img src="images/minus.gif" border="0"></a><img src="images/open.gif">') } */ frames["tree_frame"].document.writeln('<\/td>') frames["tree_frame"].document.writeln('<td>') frames["tree_frame"].document.writeln(main_node[0].text) // frames["tree_frame"].document.writeln('<\/td>') frames["tree_frame"].document.writeln('<\/tr>') frames["tree_frame"].document.writeln("<\/table>") // If the main node state is "open", write the child nodes if (main_node[0].state == "open") { write_children(main_node) } // Finish up //Web master e-mail and RFBR indication frames["tree_frame"].document.writeln('<hr>') frames["tree_frame"].document.writeln('<font style="font-size: 8pt; font-family: Arial, Helvetica">e-mail:') frames["tree_frame"].document.writeln('<a href="mailto:rusanalytchem@geokhi.ru">WebMaster</a>') frames["tree_frame"].document.writeln('<BR>При поддержке РФФИ') frames["tree_frame"].document.writeln('</font>') frames["tree_frame"].document.writeln('<hr>') //March, 23, 2003 frames["tree_frame"].document.writeln('Copyright 2001<BR>') frames["tree_frame"].document.writeln('<BR>Счетчик посетителей:<BR>') frames["tree_frame"].document.writeln(iVisitorsCounter) frames["tree_frame"].document.writeln(' /') frames["tree_frame"].document.writeln(iSessionCounter) frames["tree_frame"].document.writeln('<\/body>') frames["tree_frame"].document.writeln('<\/html>') frames["tree_frame"].document.close() } // This function writes all the child node for whatever // parent node is specified as the argument. Note that // this function is called recursively whenever any // child node has children of its own. function write_children(parent_node) //============================================ { var child_node var indent_width // Run through all of the parent's child nodes // parent_node[0] refers to the parent node itself, so start at 1 for (var counter = 1; counter < parent_node.length; counter++) { // Store the child node child_node = parent_node[counter] // First check to see if this is a folder or a document var its_a_folder = true if (child_node.length == 1) { its_a_folder = false } // Create a table for the child node frames["tree_frame"].document.writeln('<table border="0" cellspacing="0" cellpadding="0" >') frames["tree_frame"].document.writeln('<tr>') frames["tree_frame"].document.writeln('<td>') // Calculate and display the indentation indent_width = (child_node[0].level-1) * 20 //decrement is needed when node=0 is omitted if (!its_a_folder) { // Need a bit extra for a document indent_width += 20 } frames["tree_frame"].document.writeln('<td >') //use background color frames["tree_frame"].document.writeln('<img src="images/invisible.gif" width="' + indent_width + '" height="10">') frames["tree_frame"].document.writeln('<\/td>') // Write the node text frames["tree_frame"].document.writeln('<td valign="top" >') // Handle folders and documents separately if (its_a_folder) { frames["tree_frame"].document.writeln('<a href="javascript:parent.toggle_state(\'' + child_node[0].index + '\')">') if (child_node[0].state == "closed") { frames["tree_frame"].document.write('<img src="images/plus.gif" border="0"></a><img src="images/closed.gif">') } else { frames["tree_frame"].document.write('<img src="images/minus.gif" border="0"></a><img src="images/open.gif">') } frames["tree_frame"].document.writeln('<\/td>') frames["tree_frame"].document.writeln('<td>') frames["tree_frame"].document.writeln(child_node[0].text) frames["tree_frame"].document.writeln('<\/td>') frames["tree_frame"].document.writeln('<\/tr>') frames["tree_frame"].document.writeln('<\/table>') //refresh parent's folder(s) name for active doc to show it in the banner frame if(child_node[0].level==1) Folder1= child_node[0].text //if(child_node[0].level==2) Folder2= child_node[0].text //this line should be updated !!!! // If this child's state is "open", recursively call // this function to write the child's children (if any) if (child_node[0].state == "open") { write_children(child_node) } } else { // Is it the currently displayed document? if (child_node[0].index == current_document) { frames["tree_frame"].document.writeln('<img src="images/open_page.gif">') frames["tree_frame"].document.writeln('<\/td>') frames["tree_frame"].document.writeln('<td>') frames["tree_frame"].document.writeln('<FONT color="#FF7F00">') frames["tree_frame"].document.writeln(child_node[0].text) frames["tree_frame"].document.writeln('</FONT>') //refresh header line in banner (show node1 level 1&2) if(Folder1 == szNsakhShort) Folder1= szNsakhFull if (Folder2 == "") szFolderBanner= Folder1 else { szFolderBanner= Folder1+ "/ "+ Folder2 Folder2= "" } if(szFolderBanner != FolderBanner) { //refresh var and reload page FolderBanner= szFolderBanner Folder2= "" frames["banner"].location= 'Header_cont.htm' } } else { //********* select image for page //=============================== //alert(child_node[0].url) var szUrl= child_node[0].url var ext_pos= szUrl.lastIndexOf(".") var szExt= szUrl.substring(ext_pos+1, ext_pos+4) var szPrefix= szUrl.substring(0, 5) if(szPrefix== "http:") { frames["tree_frame"].document.writeln('<a href="javascript:parent.toggle_state(\'' + child_node[0].index + '\')">' + '<img src="images/site_page.gif" border="0">') } else { if(szExt == "htm") { frames["tree_frame"].document.writeln('<a href="javascript:parent.toggle_state(\'' + child_node[0].index + '\')">' + '<img src="images/htm_page.gif" border="0">') } if(szExt == "asp") { frames["tree_frame"].document.writeln('<a href="javascript:parent.toggle_state(\'' + child_node[0].index + '\')">' + '<img src="images/asp_page.gif" border="0">') } else { if(szExt == "pdf") { frames["tree_frame"].document.writeln('<a href="javascript:parent.toggle_state(\'' + child_node[0].index + '\')">' + '<img src="images/pdf_page.gif" border="0">') } if(szExt == "doc") { frames["tree_frame"].document.writeln('<a href="javascript:parent.toggle_state(\'' + child_node[0].index + '\')">' + '<img src="images/doc_page.gif" border="0">') } if(szExt == "rtf") { frames["tree_frame"].document.writeln('<a href="javascript:parent.toggle_state(\'' + child_node[0].index + '\')">' + '<img src="images/doc_page.gif" border="0">') } if(szExt == "ppt") { frames["tree_frame"].document.writeln('<a href="javascript:parent.toggle_state(\'' + child_node[0].index + '\')">' + '<img src="images/ppt_page.gif" border="0">') } if(szExt == "xls") { frames["tree_frame"].document.writeln('<a href="javascript:parent.toggle_state(\'' + child_node[0].index + '\')">' + '<img src="images/xls_page.gif" border="0">') } } } frames["tree_frame"].document.writeln('<\/td>') frames["tree_frame"].document.writeln('<td>') frames["tree_frame"].document.writeln('<a href="javascript:parent.toggle_state(\'' + child_node[0].index + '\')">') frames["tree_frame"].document.writeln(child_node[0].text + '</a>') } frames["tree_frame"].document.writeln('<\/td>') frames["tree_frame"].document.writeln('<\/tr>') frames["tree_frame"].document.writeln('<\/table>') } frames["tree_frame"].document.writeln('<\/td>') frames["tree_frame"].document.writeln('<\/tr>') } } function toggle_state(node_index) //============================================ { // Get the node from the global nodes_array var current_node = nodes_array[node_index] // Store the node's current state current_state = current_node[0].state //check if the current URL points to site (isolate first 5 letters: http:) var szPrefix= current_node[0].url.substring(0, 5) // Change it to the other state if (current_state == "open") { current_node[0].state = "closed" } else { current_node[0].state = "open" } // Is this a document? if (current_node.length == 1) { if (current_document != -1) { nodes_array[current_document].state = "closed" } if(szPrefix== "http:") //open external site in a new window { //window.open(current_node[0].url, "RusAnalytChem_InteractiveSite", "location=yes, toolbar=yes") window.open(current_node[0].url, "RusAnalytChem_InteractiveSite") } else { current_document = current_node[0].index // frames["content_frame"].location = current_node[0].url } } // Rewrite the menu timeout_id = setTimeout("write_menu()", 50) } function change_all(new_state) //============================================ { var current_node // Run through the global nodes_array for (counter = 1; counter < nodes_array.length; counter++) //Home level is opened { //Store the current node current_node = nodes_array[counter] // Work only with folders if (current_node.length > 1) { current_node[0].state = new_state } } // Rewrite the menu timeout_id = setTimeout("write_menu()", 50) } //////////////////////////////////////////////////////////////// function open_session(VCounter, SCounter) { iVisitorsCounter = VCounter iSessionCounter = SCounter build_tree() //register_visitor() } ////////////////////////////////////////////////////////////////