/*********************************************************************************/
/*
    author : Mehdi Essid
    script file for browse_meta_folder.php
*/
/*********************************************************************************/
var current_folder_id = -1;     // the id of the current folder
var parent_folder_id = -1;      // the id of the current parent folder
var selected_object = -1;        // the if of the selected object
var cuurent_displayed_page = -1; // current displayed list object page  
var count =0;                   // the number of object contained in the current folder
var max_displayed_objects = 25; // the max number of objects that we can display on a page
var imgUrl='';                  // url prefix to the server path of the folder wich contains the object icons 
var group_display = false;   // display object whith group titles or not


// Storage for back-forward buttons
var page_history = new Array();
var history_max = 0;
var history_current_position = -1;

//toolbar menus
var collaborate_menu;
var help_menu;

/** init page : toolbar titles, etc ***/
function init_page(){
    var el = document.getElementById('tb_img_home');
    if(el){
        el.setAttribute('title',toolbar_home_title);
    }
    
    el = document.getElementById('tb_img_backwardward');
    if(el){
        el.setAttribute('title',toolbar_back_title);
    }
    
    el = document.getElementById('tb_img_forward');
    if(el){
        el.setAttribute('title',toolbar_farward_title);
    }
    
    el = document.getElementById('tb_img_up');
    if(el){
        el.setAttribute('title',toolbar_gotoparent_title);
    }
    
    el = document.getElementById('tb_img_refresh');
    if(el){
        el.setAttribute('title',toolbar_refresh_title);
    }
    
    el = document.getElementById('tb_img_group_display');
    if(el){
        el.setAttribute('title',group_display_on_title);
    }
    el = document.getElementById('tb_img_collaborate');
    if(el){
        el.setAttribute('title',collaborate_menu_title);
    }
    el = document.getElementById('tb_img_about');
    if(el){
        el.setAttribute('title',about_menu_title);
    }
    
    el = document.getElementById('acc1');
    if(el){
        el.setAttribute('title',account_type1_title);
    }
    
    el = document.getElementById('acc2');
    if(el){
        el.setAttribute('title',account_type2_title);
    }
    
    el = document.getElementById('acc3');
    if(el){
        el.setAttribute('title',account_type3_title);
    }
    
    el = document.getElementById('acc4');
    if(el){
        el.setAttribute('title',account_type4_title);
    }
    
    
    
    init_menus();
}

function init_menus(){
	webfxMenuImagePath	= "../d30/img";
    webfxMenuUseHover = true;
    
    /** collaborate menu **/
    var el = document.getElementById('collaborate')
	collaborate_menu = new WebFXMenu(el);
	collaborate_menu.add(item_collaborte_menu_item1 = new WebFXMenuItem(collaborate_menu_item1,'javascript:collaborate_item_click(1)',null));
    collaborate_menu.add(new WebFXMenuSeparator);
    collaborate_menu.add(item_collaborte_menu_item2 = new WebFXMenuItem(collaborate_menu_item2,'javascript:collaborate_item_click(2)',null));
    collaborate_menu.add(item_collaborte_menu_item3 = new WebFXMenuItem(collaborate_menu_item3,'javascript:collaborate_item_click(3)',null));
    collaborate_menu.add(item_collaborte_menu_item4 = new WebFXMenuItem(collaborate_menu_item4,'javascript:collaborate_item_click(4)',null));
    collaborate_menu.add(item_collaborte_menu_item5 = new WebFXMenuItem(collaborate_menu_item5,'javascript:collaborate_item_click(5)',null));
    collaborate_menu.add(item_collaborte_menu_item6 = new WebFXMenuItem(collaborate_menu_item6,'javascript:collaborate_item_click(6)',null));
    collaborate_menu.add(item_collaborte_menu_item7 = new WebFXMenuItem(collaborate_menu_item7,'javascript:collaborate_item_click(7)',null));
    collaborate_menu.add(item_collaborte_menu_item8 = new WebFXMenuItem(collaborate_menu_item8,'javascript:collaborate_item_click(8)',null));
    collaborate_menu.add(item_collaborte_menu_item9 = new WebFXMenuItem(collaborate_menu_item9,'javascript:collaborate_item_click(9)',null));
    collaborate_menu.add(item_collaborte_menu_item10 = new WebFXMenuItem(collaborate_menu_item10,'javascript:collaborate_item_click(10)',null));
    collaborate_menu.add(item_collaborte_menu_item11 = new WebFXMenuItem(collaborate_menu_item11,'javascript:collaborate_item_click(11)',null));
	
	collaborate_menu.width = 200;
    document.getElementById('menus').innerHTML = (collaborate_menu.toString());
    
    /** about menu **/
    el = document.getElementById('about')
    about_menu = new WebFXMenu(el);
	about_menu.add(item_about_menu_item1 = new WebFXMenuItem(about_menu_item1,'javascript:about_item_click(1)',null));
    about_menu.add(item_about_menu_item2 = new WebFXMenuItem(about_menu_item2,'javascript:about_item_click(2)',null));
    about_menu.add(item_about_menu_item3 = new WebFXMenuItem(about_menu_item3,'javascript:about_item_click(3)',null));
    about_menu.add(item_about_menu_item4 = new WebFXMenuItem(about_menu_item4,'javascript:about_item_click(4)',null));
    about_menu.add(item_about_menu_item5 = new WebFXMenuItem(about_menu_item5,'javascript:about_item_click(5)',null));
    about_menu.add(item_about_menu_item6 = new WebFXMenuItem(about_menu_item6,'javascript:about_item_click(6)',null));
	
	about_menu.width = 160;
	document.getElementById('menus').innerHTML += (about_menu.toString());
	
    //hide menus onblur
    document.getElementById(collaborate_menu.id).onblur = new Function("webFXMenuHandler.hideMenu(collaborate_menu);return true;");
    document.getElementById(about_menu.id).onblur = new Function("webFXMenuHandler.hideMenu(about_menu);return true;");
	
	//disable non implemented menus
    item_collaborte_menu_item1.disable();
    item_collaborte_menu_item2.disable();
    item_collaborte_menu_item3.disable();
    item_collaborte_menu_item4.disable();
    item_collaborte_menu_item5.disable();
    item_collaborte_menu_item6.disable();
    item_collaborte_menu_item7.disable();
    item_collaborte_menu_item8.disable();
    item_collaborte_menu_item9.disable();
    item_collaborte_menu_item10.disable();
    item_collaborte_menu_item11.disable();
    
    item_about_menu_item2.disable();
    item_about_menu_item3.disable();
    item_about_menu_item5.disable();
	
}

/** get object short details **/
function get_mosaic_short_details(obj_id,obj_type,dir_loc){
    var sv_cell = document.getElementById("short_view");
    if(sv_cell){
        var loc = ''+document.location;
        //delete # from network_id parameter
        loc = loc.replace('#','');
        if(obj_type == 'folder_shortcut'){
            loc = update_url_parameter(dir_loc,'page','get_directory_info');
        } else if(obj_type == 'folder'){
            loc = update_url_parameter(loc,'page','get_network_info');
            loc = update_url_parameter(loc,'object_id',obj_id);
        } else{
            loc = update_url_parameter(loc,'page','get_mosaic_short_details');
            loc = update_url_parameter(loc,'object_id',obj_id);
        }
        var originalRequest = get_synchronous_request(loc);
        url_response = originalRequest.responseText;
        //alert_debug(loc+"\n"+url_response);
		if (url_response.substr(0, 5) != 'Error') {
			if (originalRequest == null){
				alert_window("Error : "+error_server_connection);
				return false;
			} else {
				var response = get_xml_response(originalRequest);
                if(response == null){
                    if(url_response.substr(0, 6) == '<html>'){
                        try{
                            open_window({closable:true, minimizable:false, maximizable:false, resizable:false, draggable:false, 
                                            icon:'../d30/desktop/images/login_16.png', 
                                            width: 700, height: 300, title: login_window_title, url: '../a30/login.php?target_url='+escape(loc+'&redirect=false')}) ;
                        } catch(e){
                            alert_window(access_denied_nosession_error);
                        }
                    } else{
                        alert("Error : "+error_server_connection);
                    }
                    return false;
                }
				if(response.getAttribute('message')) {
					if (response.getAttribute('message') == 'server_error') {
						//log_message('nosession');
						alert_window(error_server_connection);
						return false;
					} else if (response.getAttribute('message') == 'invalid_request') {
						//log_message('access_denied');
						alert_window(invalid_request_error);
						return false;
					} else if (response.getAttribute('message') == 'access_denied') {
						alert_window(error_access_denied);
						return false;
					} else{
                        alert_window(error_server_connection);
						return false;
					}
				} else {
                        display_short_view(response,obj_type);
                }
			}
		} else {
			alert_window(error_server_connection);
			return false;
		}
    }
}

/** display short view infos ***/
function display_short_view(xmldoc,obj_type){

    if(xmldoc == null) return;
    var sv = document.getElementById("short_view");
    if(!sv) return;
    show_rows(obj_type);
    var el = document.getElementById("object_name");
    if(el){
        
        var url_array = xmldoc.getAttribute('object_type_icon').split('.');
        var icon="";
        var sep='';
        for(var i=0;i< url_array.length-1;i++){
            icon += sep+url_array[i];
            sep='.';
        }
        icon += '_32.'+url_array[url_array.length-1];
        el.innerHTML ='<img src="'+icon+'" align="absmiddle" >&nbsp;&nbsp;'+html_to_iso(xmldoc.getAttribute('name'));
    }
    
    if(obj_type == 'folder_shortcut'){
            el = document.getElementById("object_1st_stat_count");
            if(el){
                el.innerHTML = xmldoc.getAttribute('entreprise_count')+'&nbsp;'+statistics_connected_companies;
            }
            
            el = document.getElementById("object_2st_stat_count");
            if(el){
                el.innerHTML = xmldoc.getAttribute('object_count')+'&nbsp;'+statistics_published_ressources+'<span style="color:gray">&nbsp;'+statistics_ressource_examples+'</span>';
            }
            
            var en = xmldoc.getAttribute('editor_name');
            var editor_name = "<span class='partner_prefix_text'>"+partner_prefix_text+"</span><br>"+en;
            var editor_url = '<a href="'+xmldoc.getAttribute('editor_url')+'" target="_blank" onclick="goto_url(event,\''+xmldoc.getAttribute('editor_url')+'\',false);">'+xmldoc.getAttribute('editor_url')+'</a>';
            el = document.getElementById("partner_name");
            if(el){
                if(!en || en.length==0){
                    editor_name = become_partner_text;
                    editor_url = '<a href="http://www.folderin.net/editorial/fr/editor.php" target="_blank" onclick="goto_url(event,\'http://www.folderin.net/editorial/fr/editor.php\',true);">'+more_info_text+'</a>';
                }
                el.innerHTML = html_to_iso(editor_name);
            }
            
            el = document.getElementById("partner_anchor");
            if(el){
                el.innerHTML = editor_url;
            }
            //uncomment the following to display partner logo
            /*
            el = document.getElementById("partner_logo");
            if(el){
                if(xmldoc.getAttribute('editor_logo') && xmldoc.getAttribute('editor_logo').length>0){
                    el.innerHTML = "<img src='"+xmldoc.getAttribute('editor_logo')+"'/>";
                } else{
                    el.innerHTML = "";
                }
            }
            */
            
    } else if(obj_type == 'folder'){
            el = document.getElementById("object_1st_stat_count");
            if(el){
                el.innerHTML = xmldoc.getAttribute('server_count')+'&nbsp;'+statistics_available_servers;
            }
            
            el = document.getElementById("object_2st_stat_count");
            if(el){
                el.innerHTML = xmldoc.getAttribute('folder_count')+'&nbsp;'+statistics_subfolders;
            }
    } else{
    
        var desc_cell = document.getElementById("description_cell");
        if(!desc_cell) return;
                
        if(xmldoc.hasChildNodes()) {
            var atts = xmldoc.getElementsByTagName('attribute');
            var att;
            var objs_cnt = 0;
            while (objs_cnt < atts.length) {
                att = atts.item(objs_cnt);
                html_content = '<p class="short_view_'+html_to_iso(att.getAttribute("name"))+'">';
                if(att.getAttribute("label") && att.getAttribute("label").length>0) html_content += '<span class="short_view_label">'+html_to_iso(att.getAttribute("label"))+'&nbsp;&nbsp;</span>';
                
                if(att.getAttribute("name") == 'url'){
                    html_content += '<a href="'+att.getAttribute("value")+'" target="_black">'+att.getAttribute("value")+'</a></p>';
                } else if(att.getAttribute("name") == 'logo' || att.getAttribute("name") == 'photo'){
                    html_content += '<img src="'+att.getAttribute("value")+'" /></p>';
                } else{
                    html_content += html_to_iso(att.getAttribute("value"))+'</p>';
                }
                objs_cnt++;
            }      
        }
        desc_cell.innerHTML = html_content;
    }
    sv.style.display = 'block';
}
/** show info rows depanding of the objet type : description for all objects except folder shortcut which have specific rows **/
function show_rows(obj_type){
    var el;
    if(obj_type=='folder_shortcut'){
        el = document.getElementById('description_row');
        if(el){
            Element.hide(el);
        }
        el = document.getElementById('stat_row');
        if(el){
            Element.show(el);
        }
        el = document.getElementById('2nd_sep_row');
        if(el){
            Element.show(el);
        }
        el = document.getElementById('partner_row');
        if(el){
            Element.show(el);
        }
        el = document.getElementById("partner_logo");
        if(el){
            Element.show(el);
        }
    } else if(obj_type=='folder'){
        el = document.getElementById('description_row');
        if(el){
            Element.hide(el);
        }
        el = document.getElementById('stat_row');
        if(el){
            Element.show(el);
        }
        el = document.getElementById('2nd_sep_row');
        if(el){
            Element.hide(el);
        }
        el = document.getElementById('partner_row');
        if(el){
            Element.hide(el);
        }
        el = document.getElementById("partner_logo");
        if(el){
            Element.hide(el);
        }
    } else{
        el = document.getElementById('description_row');
        if(el){
            Element.show(el);
        }
        el = document.getElementById('stat_row');
        if(el){
            Element.hide(el);
        }
        el = document.getElementById('2nd_sep_row');
        if(el){
            Element.hide(el);
        }
        el = document.getElementById('partner_row');
        if(el){
            Element.hide(el);
        }
        el = document.getElementById("partner_logo");
        if(el){
            Element.hide(el);
        }
    }
}
/*** get object list **/
function get_object_list(page, folder_id){
        if(!page) page=0;
        
        var sv_cell = document.getElementById("short_view");
        if(sv_cell) sv_cell.style.display = 'none';
    
        var loc = ''+document.location;
        loc = update_url_parameter(loc,'page','get_meta_folder_object_list');
        loc = update_url_parameter(loc,'serId',folder_id);
        loc = update_url_parameter(loc,'netId',server_id); // the server_id var is declared in the config file of the domain file (url att dname)
        loc = update_url_parameter(loc,'offset',(max_displayed_objects*page));
        
        var originalRequest = get_synchronous_request(loc);
	    url_response = originalRequest.responseText;
        //alert(loc);
        //alert_debug(url_response);
		if (url_response.substr(0, 5) != 'Error') {
			if (originalRequest == null){
				alert("Error : "+error_server_connection);
				return false;
			} else {
				var response = get_xml_response(originalRequest);
				if(response.getAttribute('message')) {
					if (response.getAttribute('message') == 'server_error') {
						//log_message('nosession');
						alert_window(error_server_connection);
						return false;
					} else if (response.getAttribute('message') == 'invalid_request') {
						//log_message('access_denied');
						alert_window(invalid_request_error);
						return false;
					} else if (response.getAttribute('message') == 'access_denied') {
						alert_window(error_access_denied);
						return false;
					} else{
                        alert_window(error_server_connection);
						return false;
					}
				} else {
                    display_list(response,page);
                    //save history
                    add_to_history(page,folder_id);
                }
			}
		} else {
			alert_window(error_server_connection);
			return false;
		}
}

/** remove all objects from the object container **/
function empty_object_container(){
    var ob_container;
    ob_container = document.getElementById("object_container");
    if (ob_container) {
        ob_container.innerHTML = "";
        nb_objects = 0;
    }
    
}

/** display object list in the object container **/
function display_list(xmldoc,page){
        
        if(xmldoc == null){
            get_object_list(page,current_folder_id);
            return;
        }
    
        imgUrl = xmldoc.getAttribute('imgUrl');
        count= xmldoc.getAttribute('count');
        var parent_id = xmldoc.getAttribute('parent_id');
        current_folder_id = xmldoc.getAttribute('object_id');
        //set folder path
        var path_cell = document.getElementById("folder_path");
        if(path_cell) path_cell.innerHTML = xmldoc.getAttribute('path');
            
        update_parent_folder(parent_id);
        

        var c;
        var img;
        var name;
        var type;
        var t;
        var fl = 0;
        var ll = 1000;
        selected_object = -1;
        empty_object_container();
        /** update paging **/
        var info = document.getElementById('page_list');
        var ih = '';
        if (info){
            if (count != null ){
                count = parseInt(count);
                var r = count % max_displayed_objects;
                var nb_pages =  (count-r)/max_displayed_objects;
                if (r>0) nb_pages++;
                i = 1;
                d = 1;
                if(nb_pages>1){
                    while (i<= nb_pages) {
                        ih += ' <a href="javascript:void()" id="page_'+i+'" class="page_list_item" onclick="display_list(null,'+(i-1)+'); return false;">'+i+'</a>';
                        i++;
                    }
                }
                info.innerHTML = ih;    
            }
        }

        select_current_page(page+1);
                    
        if(xmldoc.hasChildNodes()) {
            var objs = xmldoc.getElementsByTagName('object');
            var objs_cnt = 0;
            var ind = 1;
            var group_header = '';
            var c;    

            while (objs_cnt < objs.length) {
                c = objs.item(objs_cnt); 
                //add object_groupping
                if(group_display == true){               
                    if (group_header != c.getAttribute("display")) {
                        add_group_header(nb_objects, c.getAttribute("display"));
                        nb_objects++;
                        group_header = c.getAttribute("display");
                    }
                }                
                display_object(nb_objects
                    , c.getAttribute("type")
                    , c.getAttribute("name")
                    , c.getAttribute('object_id')
                    , c.getAttribute('description')
                    , c.getAttribute("date_modified")
                    , c.getAttribute("object_type_icon")					
                    , c.getAttribute("url")
                    , c.getAttribute("location")
                    , c.getAttribute("country")
                    , c.getAttribute("editor")
                    , c.getAttribute("active")
                );
                objs_cnt++;
            }      
        }
        cuurent_displayed_page = page;        
    }
    
/** add a group header **/
function add_group_header(index, heading) {
        var obj_container = document.getElementById("object_container");
        if(obj_container){
            var ghp =document.createElement("p");
            if (index ==0)  ghp.className = 'first_group_header';
            else ghp.className = 'group_header';
            ghp.setAttribute('id', 'tr'+index);
            ghp.innerHTML = heading;
            obj_container.appendChild(ghp); 
        }
}

/** add an object to the object container **/
function display_object(index, type, name, object_id, description, date_modified, object_type_icon,url,loc,country,editor,active) {
    //object_parent_id is needed for symbolic link objects
        //debug_msg('Adding list line: '+name, DBG_INFO);

                    
        var obj_container = document.getElementById("object_container");
        if(object_container){
            var obj_main = document.createElement("span");
            obj_main.className = "object";
            obj_main.setAttribute('id', 'object'+index);
            
            var obj_anchor = document.createElement("a");
            obj_anchor.href = "javascript:";
            var obj_content = document.createElement("div");
            obj_content.setAttribute('id', 'obj_content'+index);
            var cname = object_type_icon.split('.')[0];
            if(active == 't' || type == 'folder'){
                obj_content.className = "object_content_out "+cname;
            } else{
                obj_content.className = "object_content_out "+cname+"_disabled";
            }
            obj_content.innerHTML = name;
            
            obj_anchor.className = "object_anchor";
            obj_anchor.setAttribute('id', 'tr'+index);

            obj_anchor.onmouseover= function(event){
                                    object_mouse_move(event,index,'over');
                                };
            obj_anchor.onmouseout= function(event){
                                    object_mouse_move(event,index,'out');
                                };
            switch (type){
                case 'folder':
                    obj_anchor.onclick= function(event){
                                    object_mouse_click(event,index,object_id,type,loc)
                                };
                    obj_anchor.ondblclick= new Function("browse_folder("+object_id+")");
                    break;
                case 'folder_shortcut':
                    obj_anchor.onclick= function(event){
                                    object_mouse_click(event,index,object_id,type,loc)
                                };
                    obj_anchor.ondblclick= new Function("open_volume('"+loc+"')");
                    break;
                default :
                    obj_anchor.onclick= new Function("show_rows('"+type+"')");
                    obj_anchor.ondblclick= new Function("display_detail("+object_id+",\""+name+"\",\"../d30/img/"+object_type_icon+"\")");
                    break;
            }
            
            
            
            // create object icons
            var icons_container = document.createElement("div");
            icons_container.className = 'icons_container_out';
            icons_container.setAttribute('id', 'icons_container'+index);
                
            var icon_register = document.createElement("span");
            if(type == 'folder_shortcut'){
                icon_register.className = 'icon_register';
                icon_register.onclick= new Function("register_object('"+loc+"')");
                icon_register.onmouseover= function(event){
                                        object_mouse_icon_move(event,index,'over');
                                    };
                icon_register.onmouseout= function(event){
                                        object_mouse_icon_move(event,index,'out');
                                    };
            } else{
                icon_register.className = 'no_icon';
            }
            icons_container.appendChild(icon_register);
            obj_main.appendChild(icons_container); 
            
            
            obj_anchor.appendChild(obj_content); 
            obj_main.appendChild(obj_anchor); 
            object_container.appendChild(obj_main); 
            nb_objects++;
        }
}

function browse_folder(obj_id){
    get_object_list(0,obj_id);
}

function open_volume(dir_url){
			try{
				parent.open_window({closable:true, minimizable:true, maximizable:true, resizable: true, draggable:false, className:"folderin_explorer",
                                            icon:'http://www.folderin.net/d30/img/list_folder_shortcut_16_h.png', 
                                            //width: 700, height: 300, title: login_window_title, url: '../a30/login.php?target_url='+escape(dir_url)}) ;
                                            width: 950, height: 520, title: login_window_title, url: dir_url}) ;
			} catch(e){
				document.location = dir_url;
			}
    //document.location = dir_url;
}
        
function display_detail(object_id,name,icon){
        var loc = ''+document.location;
        loc = update_url_parameter(loc,'page','display_detail');
        loc = update_url_parameter(loc,'object_id',object_id);
        loc = update_url_parameter(loc,'base',folderin_meta); 
        
		try{
			//foo = parent.parent.open_entreprise_detail_window({className: "avicend" , icon: "images/company.gif", top:50,left:50},false,xmlDetail);
			/*name = document.getElementById('name'+selected_line).innerHTML;
			//delete <b> and <p> from visilinks
			name = name.replace('<B>','').replace('</B>','').replace('<P>','').replace('</P>','');
			icon = document.getElementById('img'+selected_line).src;
			id = parent.parent.name;
			if(id) id = id.substring(0, id.indexOf('_'));
			else id = -1;
			foo = parent.parent.parent.open_object_detail_window({className: "avicend" , icon: icon, title:(name+": Details"),url: (loc+'&desktop=true&parent_win='+id+'&win=win'+parent.parent.ids)},false);
			*/
            open_window({closable:true, minimizable:false, maximizable:true, resizable:true, 
                                            icon: icon, 
                                            width: 900, height: 600, title: name, url: loc}) ;
		} catch(e){
			window.open(loc , 'detail');
		}
}

function select_object(obj_nb) {
        var t;		
        // Unselect the formerly selected object
        if (selected_object >= 0) {
            t = document.getElementById('tr'+selected_object);
            if (t != null) {
                t.className = "object_anchor";//+t.className.split(" ")[1];
            }
            t = document.getElementById("partner_logo");
            if(t){
                t.hide(t);
            }
            
        }
			
	// Select the newly selected line
	t = document.getElementById('tr'+obj_nb);
    if (t == null) {
        selected_object = -1;
        var sv = document.getElementById("short_view");
        if(sv) sv.style.display = "none";
        return;
    }
    t.className = "object_anchor_selected";//+t.className.split(" ")[1];
    t = document.getElementById("partner_logo");
    if(t){
        t.show(t);
    }
    
	selected_object = obj_nb;
}


function object_mouse_click(e,obj,obj_id,obj_type,loc) {
	//for ie
    (e)? e=e:e=window.event;
    Event.stop(e);
    get_mosaic_short_details(obj_id,obj_type,loc);
	select_object(obj);
}

    function select_current_page(cp){
        el = document.getElementById("page_"+cp);
        if(el) el.className = "page_list_current";
        i=0;
        while(el){
            if((el.id != ("page_"+cp)) && (el.className == "page_list_current")) el.className= "page_list_item";
            i++;
            el = document.getElementById("page_"+i);
        }
    }
function debug(message,add){
    if(add===true){
        $('debug_div').innerHTML += "<br>"+message;
    } else{
        $('debug_div').innerHTML = message;
    }
}

function object_mouse_move(e,index,mode){
    (e)? e=e:e=window.event;
    var x = Event.pointerX(e);
    var y = Event.pointerY(e);
    var el = document.getElementById('obj_content'+index);
    if(!el) return;
    var icons = document.getElementById('icons_container'+index);
    if(!icons) return;
    var anchor = document.getElementById('tr'+index);
    if(!anchor) return;

    var offset=0;
    if(BrowserProperties.browser == "Explorer") offset=2;
    var within = Position.within(icons, x-offset,y-offset);
    
    if(mode == 'over'){
        el.className = el.className.replace('object_content_out','object_content_over');
        icons.className = 'icons_container_over';
    } else if(mode == 'out'){
        if(within == false){    
            el.className = el.className.replace('object_content_over','object_content_out');
            icons.className = 'icons_container_out';
        }
    }
}

function object_mouse_icon_move(e,index,mode){
    var el = document.getElementById('obj_content'+index);
    if(!el) return;
    var icons = document.getElementById('icons_container'+index);
    if(!icons) return;
    var anchor = document.getElementById('tr'+index);
    if(!anchor) return;

        if(mode == 'over'){
            show_register_help(icons);
            el.className = el.className.replace('object_content_out','object_content_over');
            anchor.className = "object_anchor_icon_over";
        } else if(mode == 'out'){
            hide_register_help();
            el.className = el.className.replace('object_content_over','object_content_out');
            anchor.className = "object_anchor";
            icons.className = 'icons_container_out';
        }
}

/** show the register_help_div near icons **/
function show_register_help(icon){
    if(!icon) return;
    var el =  document.getElementById('register_help_div');
    if(!el) return;
    var p = Position.cumulativeOffset(icon);
    if(!p) return;
    var x = p[0]+30;
    var y = p[1];
    
    var page_dim = Element.getDimensions(document.body);
    var div_dim =  Element.getDimensions(el);
    if((x+div_dim.width)>page_dim.width) x = p[0]-div_dim.width;
    
    
    el.style.top = y +'px';
    el.style.left = x +'px';
    el.style.display = 'block';
    
}
/* hide the register_help_div */ 
function hide_register_help(){
    var el =  document.getElementById('register_help_div');
    if(!el) return;
    el.style.display = 'none';
}

function cancel_event(e){ 
    (e)? e=e:e=window.event;
    Event.stop(e);
}



/**** toolbar functions ***/

/** goto te the parent folder **/
function home_click(){
    document.location = document.location;
}

function up_click(){
    if(current_folder_id != server_id){
        get_object_list(0,parent_folder_id);
    } 
}


/** update the parent_folder_id and able/disable the image on the toolbar ***/
function update_parent_folder(pf_id){
    parent_folder_id = pf_id;
    var img = document.getElementById('tb_img_up');
    if(img){
        if(current_folder_id != server_id){
            img.src = img.src.replace('folder_up_dis_24.png','folder_up_24.png');
        } else{
            img.src = img.src.replace('folder_up_24.png','folder_up_dis_24.png');
        }
    }
}

/** refresh the page **/
function refresh_click(){
    document.location = ''+document.location;
}

/** display with group titles or not **/
function group_display_click(){
    var el = document.getElementById('tb_img_group_display');
    if(!el) return;
    if(group_display == true){
        group_display = false;
        el.setAttribute('title',group_display_on_title);
    } else{
        group_display = true;
        el.setAttribute('title',group_display_off_title);
    }
    get_object_list(cuurent_displayed_page, current_folder_id)   
}

function network_click(){
    document.location = 'http://'+document.location.hostname+'/a30/login_account.php';
}

function goto_url(e,url,internal_window){
    (e)? e=e:e=window.event;
    Event.stop(e);
    
    if(internal_window == true){
        try{
            open_window({closable:true, minimizable:false, maximizable:true, resizable:true, draggable:true, 
                                                icon:'../d30/desktop/images/folderin_welcome_16.png', 
                                                width: 900, height: 600, title: become_partner_window_title, url: url}) ;
        } catch(e){
            window.open(url,"new_window");
        }
    } else{
        window.open(url,"new_window");
    }

    
}

function register_object(loc){
    var loc1 = loc;
    loc1 = update_url_parameter(loc1,'page','register_object');
    loc1 = update_url_parameter(loc1,'object_type','entreprise');
    var w = screen.width;
    var h = screen.height;
    if(w>1100) w=960;
    if(h>630) h=630;
    
    try{
        open_window({closable:true, minimizable:false, maximizable:true, resizable:true, draggable:true, 
                                            icon:'../d30/img/new_object.png', 
                                            width: w, height: h, title:register_entreprise_window_title, url: loc1}) ;
    } catch(e){
        window.open(loc1,"new_window",'top=0,left=0,width='+w+',height='+h+',menubar=no');
    }
}

function map_click(){
    try{
        open_window({closable:true, minimizable:false, maximizable:true, resizable:true, draggable:true, 
                                            icon:'../d30/img/map_16.png', 
                                            width: 1065, height: 540, title:map_window_title, url: '../d30/html/fmap_scientific_parks.html'}) ;
    } catch(e){
        window.open('../d30/html/fmap.html',"new_window");
    }
}


function collaborate_click(index){
    var obj = document.getElementById("collaborate");
    toggle_menu(collaborate_menu,obj);
}


function about_click(index){
    var obj = document.getElementById("about");
    toggle_menu(about_menu,obj);
}

function toggle_menu(m,obj){
    if(!m || !obj) return;
    if(!m.shown){
        webFXMenuHandler.hideAllMenus()
        m.show(obj,'vertical');
        document.getElementById(m.id).focus();
    } else{
        m.hide();
    }
}

/** menu items click functions **/
function collaborate_item_click(index){
    switch (index){
        case 1:
            break;
    }
}

function about_item_click(index){
    var loc = '';
    var title = '';
    var icon = '../d30/desktop/images/folderin_welcome_16.png';
    var w= 900;
    var h = 600;
    switch (index){
        case 1:
            title = about_menu_item1;
            loc = 'http://www.folderin.net/editorial/fr/folderin_what_is.php';
            icon = '../d30/img/list_web_ressource_16_h.png';
            break;
        case 4:
            title = about_menu_item4;
            loc = 'http://www.folderin.net/editorial/fr/about_avicend.php';
            icon = '../d30/img/list_web_ressource_16_h.png';
            break;
        case 6:
            title = about_menu_item6;
            loc = '../d30/contact_us.php';
            w = 460;
            h = 270;
            break;
    }
    try{
        open_window({closable:true, minimizable:false, maximizable:false, resizable:true, draggable:true, 
                                            icon: icon, 
                                            width: w, height: h, title: title, url: loc}) ;
    } catch(e){
        window.open(loc,"new_window");
    }
}
/*** history management ***/

/** enable and disable buttons according to the history postion **/
function update_navigate_buttons(){
    var im;
	if (history_current_position == 0) {
					im = document.getElementById('tb_img_backward');
                    im.src = '../d30/img/left_des_24.png';
	} else {
        			im = document.getElementById('tb_img_backward');
                    im.src = '../d30/img/left_24.png';
	}
	if ((history_current_position+1) < history_max) {
					im = document.getElementById('tb_img_forward');
                    im.src = '../d30/img/right_24.png';
	} else {
					im = document.getElementById('tb_img_forward');
                    im.src = '../d30/img/right_des_24.png';
	}	
}

function back_click(){
    if (history_max != 0 && history_current_position > 0) {
        (history_current_position)--;
        goto_history(history_current_position);	
    }
}

function forward_click(){
    if (history_max != 0 && (history_current_position+1) < history_max) {
        (history_current_position)++;
        goto_history(history_current_position);		
    }
}

function add_to_history(page,folder_id){
    var seen_before = 0;
    var x;
    for (x in page_history) {
        if (page_history[x].page == page && page_history[x].folder_id == folder_id) {
            seen_before = 1;
            break;
        }
    }
	if (seen_before == 0) {
        page_history[history_max] = {page:page, folder_id:folder_id};
        history_current_position = history_max;
        (history_max)++;
        update_navigate_buttons();
    }
}

function goto_history(index){
   get_object_list(page_history[index].page,page_history[index].folder_id) ;
   update_navigate_buttons();
}