var browser_height = 0;
var cont_cache = '';
var height = false;
var host = "http:\/\/"+document.location.host;
var frame_mode 	= false;
var port_mode 	= false;
var pre_zoom_level = false;
var search_timeout = 0;
var search_request;
var zoom_levels = new Array(5);
zoom_levels[1] = 1;
zoom_levels[2] = 4;
zoom_levels[3] = 10;
zoom_levels[4] = 50;
zoom_levels[5] = 90;

var comp_icon_path = '/_img/icons/';
var hobo_icon_path = '/_img/hobotypes/';

// different colors of icons in /_img/icons excluding immo/auto/resto
var conf_num_icons = 5;

// active item
var ai = new Active_Item();

// browser history
var br_history = new Array();
br_history[1]	 = new History_Obj(1);
br_history[3]	 = new History_Obj(3);
br_history[4]	 = new History_Obj(3);
br_history[5]	 = new History_Obj(3);

// browser cache
var br_cache = new Array();
var br_cache_actual = 0;


// main tabs and main modes
var main_mode = 1;
var main_modes = new Array();
main_modes[1] = ['Annuaire', 		'annu'];
main_modes[2] = ['Immobilier', 	'immo'];
main_modes[3] = ['Légende', 		'lege'];
main_modes[4] = ['Hôtel/Resto', 'hore'];
main_modes[5] = ['Auto/Moto', 	'aumo'];

var main_mode_used = new Array(false, false, false, false);

var pack3_active = false;
var pack3_cache	= Array(2);

var searchmode = false;

// COMPANY PHOTOS CACHE
var comp_photo_cache = '';

// list filter
var list_filter = new Array();

// list sort/order
var list_order = new Array();

// immo
list_order[2] = new Array();
list_order[2][0] 	= 'ASC';			//location 	'', 'ASC' , 'DESC' 
list_order[2][1] 	= '';					//price 		'', 'ASC' , 'DESC' 
list_order[2][2] 	= '';					//rooms 		'', 'ASC' , 'DESC' 
list_order[2][3] 	= '';					//surface 	'', 'ASC' , 'DESC' 
list_order[2][4] 	= '';					//photos 		'', 'ASC' , 'DESC' 
list_order[2][5] 	= '';					//agence 		'', 'ASC' , 'DESC' 

// hotels / resto
list_order[4] 		= new Array();
list_order[4][0] 	= 'ASC';			//name			'', 'ASC' , 'DESC' 
list_order[4][1] 	= '';					//location 	'', 'ASC' , 'DESC' 
list_order[4][2] 	= '';					//photo		 	'', 'ASC' , 'DESC' 
list_order[4][3] 	= '';					//address	 	'', 'ASC' , 'DESC'

// auto / moto
list_order[5] 		= new Array();
list_order[5][0] 	= 'ASC';			//name			'', 'ASC' , 'DESC' 
list_order[5][1] 	= '';					//address	 	'', 'ASC' , 'DESC'
list_order[5][2] 	= '';					//location 	'', 'ASC' , 'DESC' 
list_order[5][3] 	= '';					//market		 '', 'ASC' , 'DESC' 

var list_count = new Array();
list_count[2] = 0;
list_count[4] = 0;
list_count[5] = 0;

var looping_icons = new Object();


var banners = new Object();
banners['mix'] = new Object();
banners['nat'] = new Array();
banners['loc'] = new Array();

var preloaded_banners = new Array();

function init(id, itype, pre_zoom, ref_frame_ok)
{
	// check if viaah is loaded as frame
	check_frame();

	// check for port_mode
	check_port_mode();
	
	
	if(!ref_frame_ok && frame_mode)
	{
		var url = '/engine.php?set_inva_iframe_cont=1&id=' + id;
		
		if(frame_referer) url += '&frame_referer=' + frame_referer;
		
		jah_back(url, 'set_inva_iframe_cont(result)');
		return false;
	}

	if(!frame_mode)
	{
		getObject('tb0').style.display = 'block';
	}
	

	// check if type is 1(company) or 2(immo)
	if(itype)
	{
		itype = parseInt(itype);
		
		if(pre_zoom)
		{
			pre_zoom_level = zoom_levels[pre_zoom];
		}
		else
		{
			pre_zoom_level = 90;
		}
		
		if(id && id.match(/^[0-9,]+$/))
		{
			// company
			if(itype == 1 && ref_frame_ok)
			{
				// CHECK IF ID IS LIST OF IDS
				if(id.match(/,/))
				{
					fn_set_icons(itype, 2, id, false);
				}	
				// COMPANY COMES SOLO		
				else
				{
					fn_set_icons(itype, 1, id);
				}
			}
			// immo_ad
			else if(itype == 2)
			{
				pre_zoom_level = 10;
				fn_init_list_filter(2);
				fn_set_immo_icons(itype, 1, id);
			}
			// town
			else if(itype == 4)
			{
				pre_zoom_level = 10;
				fn_set_icons(itype, 1, id); 
			}

			if(!frame_mode)
			{
				fn_set_active(id, itype, 1);
				fn_load_item_details();
			}
		}
		else
		{
			main_mode = itype;
			fn_sw_mm(itype);
		}
	}
	else
	{
		fn_load_browser();
	}
	
	// init the map
	map_init();


	if(!frame_mode)
	{
		// init zoom tools and areas in the top panel
		getObject('tb111').onclick = function(){map_reset();}; 
		fn_set_zoom(true);

		// init search field
		var s = getObject('search');
		s.onkeyup 	= function(event){search(event);};
		s.onclick 	= function(){if(this.value=='Rechercher...'){this.value = '';}};
		s.onkeydown = function(){if(this.value=='Rechercher...'){this.value = '';}};
		s.focus();

		var s_btn = getObject('search_btn');
		s_btn.onclick 	= delayed_search;

		// init main tabs	
		fn_set_main_tabs();
	
		// init browser
		fn_set_ui();

		// init window functions
		window.onresize = function(){checkTiles();fn_zoom_icons();fn_heights();};
		window.onscroll = function(){window.scrollTo(0,0);};
	}
	return true;
}

function check_frame()
{
	if(parent != self)
	{
		frame_mode = true;
		getObject('tb0').style.display = 'none';
		main_mode_view[main_mode] = 0;
		set_viaah_logo();
		set_zoom_display();
		set_copyright(); 
		return true;
	}
	else
	{
		frame_mode = false;
		return false;
	}
}

function check_port_mode()
{
	if(document.location.hostname.match(/portugal/g))
	{
		port_mode = true;
	}
}

function iframe_ref(ok)
{
	if(top != self && !ok)
	{
		document.write();
	}
}

function set_inva_iframe_cont(str)
{
	document.body.innerHTML = str;
}

// Konstructor Active Item
function Active_Item()
{
	this.itype 		= 1; 
	this.mode 		= 1;
	this.id				=	0;
	this.id_str		=	'';
	this.town_id	=	0;
	this.extra		= '';
}

function fn_set_active(id, itype, mode, id_str, town_id)
{
	ai.itype 	= itype; 
	ai.mode 	= mode;
	ai.id			=	id;
	ai.id_str	= id_str;
	ai.town_id	= town_id;
}

/*
function fn_set_free_cont()
{
	// free_cont[main_mode] = 0;
	// free_cont[main_mode] = (free_cont[main_mode] + 1) % 2;
}

function fn_get_actual_cont()
{
	return 0;
	//return (free_cont[main_mode] + 1) % 2;
}

function fn_toggle_cont (dir)
{
	return true;
	if(!dir)
	{
		move_by = '-320';
		getObject('cont_' + main_mode + '_' + free_cont[main_mode]).style.left = '320px';
	}
	else if(dir == 'slide_right')
	{
		move_by = '320';
		getObject('cont_' + main_mode + '_' + free_cont[main_mode]).style.left = '-320px';
	}
	
	getObject('cont_' + main_mode + '_' + '0').style.overflow = 'hidden';
	getObject('cont_' + main_mode + '_' + '1').style.overflow = 'hidden';
	
	fn_toggle_chbxs('off');
	
	// delete outfading container innerHTML;
	
	getObject('cont_' + main_mode + '_' + fn_get_actual_cont()).innerHTML = '';
	
	// TIME NOW "1", WAS "100"
	fn_fade('cont_' + main_mode + '_' + '0', 'in_out', move_by, 0, 1, 'fn_cont_cut();');
	fn_fade('cont_' + main_mode + '_' + '1', 'in_out', move_by, 0, 1, 'fn_cont_cut();');
	
}
*/

function fn_update_browser_display()
{
	fn_toggle_chbxs();	
	fn_update_browser_ckbxs();
	fn_cont_cut();
}

function fn_toggle_chbxs(to)
{
	hide_in = getObject('tb4'+main_mode+'2');
	var chbxs = hide_in.getElementsByTagName('input');

	for(var i = 0; i < chbxs.length; i++)
	{
		if(chbxs[i].type == 'checkbox')
		{
			if(to == 'off')
			{
				//chbxs[i].style.visibility = 'hidden';
			}
			else
			{
				//chbxs[i].style.visibility = 'visible';
			}
		}
	}	
}

function fn_update_browser_ckbxs(chk_bx_id_raw, mode)
{
	var chbxs = getObject('tb4').getElementsByTagName("input");
	
	if(chk_bx_id_raw)
	{
		// trim chk_bx_
		chk_bx_id = chk_bx_id_raw.replace(/chk_bx_/, '');
		// build arr from str
		cb_arr = chk_bx_id.split('_');
		
		// if immo
		if(cb_arr[0] == 2)
		{
			return false;
		}	
	}

	for(var i = 0; i<vis_arr.length;i++)
	{
		for(var k = 0; k<chbxs.length;k++)
		{
			if(chbxs[k].type == "checkbox")
			{
				// split down id
				var cb_id_raw = chbxs[k].id.replace(/chk_bx_/, '');
				// build arr from str
				var cb_id_arr = cb_id_raw.split('_');
				if(vis_arr[i].id == cb_id_arr[2] && vis_arr[i].itype == cb_id_arr[0] && chbxs[k].id != chk_bx_id_raw)
				{
					getObject(chbxs[k].id).checked = true;
				}
			}
		}
	}
	if(chk_bx_id_raw)
	{
		// Look for id in cb_arr[2]
		id = cb_arr[2];
		// only allow top categories in history to switch childs off
		var allow_switch = true;
		for(var i = 0; i<br_history[1].ids.length;i++)
		{
			var tmp_arr = br_history[1].ids[i].split('_');
			if(tmp_arr[0] == id)
			{
				allow_switch = true;
				break;
			}
			else
			{
				allow_switch = false;
			}
		}
		
		if(!allow_switch && !mode)
		{
			return false;
		}

		for(i = 0; i<chbxs.length;i++)
		{
			if(chbxs[i].type == "checkbox")
			{
				// split down id
				cb_id_raw = chbxs[i].id.replace(/chk_bx_/, '');
				// build arr from str
				cb_arr = cb_id_raw.split('_');
				// if switch cat off in "Visible on map"
				if(chbxs[i].id.match(chk_bx_id_raw) && mode == 'off')
				{
					getObject(chbxs[i].id).checked = false;
				}
				
				if(cb_arr[3])
				{
				 	parent_ids_arr = cb_arr[3].split(',');
					if(parent_ids_arr.fn_array_search(id) >= 0)
					{
						if(mode && mode == 'off')
						{
							getObject(chbxs[i].id).checked = false;
						}
						else
						{
							getObject(chbxs[i].id).checked = getObject(chk_bx_id_raw).checked;
						}
					}
				}
			}
		}
	}
	else
	{
		var check_all = false;
		for(i = 0; i<chbxs.length;i++)
		{
			if(chbxs[i].type == "checkbox")
			{
				if(check_all)
				{
					
					// split down id
					cb_id_raw = chbxs[i].id.replace(/chk_bx_/, '');
					// build arr from str
					cb_arr = cb_id_raw.split('_');
					var tmp_arr = in_minus_array(cb_arr[0]+'_'+cb_arr[1]+'_'+cb_arr[2]);
					if(!tmp_arr[0])
					{
						getObject(chbxs[i].id).checked = true;
					}
				}
				if(getObject(chbxs[i].id).checked && getObject(chbxs[i].id).className.match(/hist/))
				{
					check_all = true;
				}
			}
		}
	}
	return true;
}

function fn_set_checkboxes(set_to)
{
	if(getObject('tb4') && !admin_mode)
	{
		var chbxs = getObject('tb4').getElementsByTagName("input");

		for(var i = 0; i<chbxs.length;i++)
		{
			if(chbxs[i].type == "checkbox")
			{
				chbxs[i].style.visibility = set_to;
			}
		}
	}
}

function fn_load_browser()
{
	var url = '/engine.php?set_browser=1&id=' + ai.id + '&type=' + ai.itype + '&mode=' + ai.mode + '&port_mode=' + port_mode;

	if(ai.town_id && ai.town_id != 0 && ai.town_id != '')
	{
		url += '&town_id=' + ai.town_id;
	}
	else if(ai.id_str != '')
	{
		url += '&id_str=' + ai.id_str;
	}
	
	var set_history = '';
	if((ai.id != 0 || searchmode) && ai.itype != 3)
	{
		set_history = fn_set_browser_history();
	}
	else if(!fn_is_empty(ai.id_str))
	{
		getObject('tb4' + [main_mode] + '1').style.display = 'none';
	}
	
	// add history ids to url
	if(br_history[main_mode].ids.length > 0 && ai.itype == 1)
	{
		var tmp_b = new Array();
		for(var i = 0; i < br_history[main_mode].ids.length; i++)
		{
			var tmp = br_history[main_mode].ids[i].split('_');
			tmp_b.push(tmp[0]);
		}
		url += '&hist_ids=' + tmp_b.join(',');
	}
	
	//jah(url, 'cont_' + main_mode + '_' + free_cont[main_mode], 'fn_toggle_cont();fn_set_free_cont();fn_update_browser_display();fn_heights();'+set_history);
	getObject('cont_' + main_mode + '_0').innerHTML = '<div><img src="../_res/loader.gif"/></div>';
	jah_back(url, 'fn_fill_browser_cont(result);fn_update_browser_display();fn_heights();'+set_history);

}

function fn_fill_browser_cont(str)
{
	var free_c = getObject('cont_' + main_mode + '_0');
	
	if(str != '')
	{
		if(str.match(/\?\?\?/) && str.match(/!!!/))
		{
			var start_cut = str.indexOf("???");
			var end_cut 	= str.lastIndexOf("!!!");
		
			// cut str
			var c1 = str.slice(0, start_cut);
			var c2 = str.slice(start_cut, end_cut);
			var c3 = str.slice(end_cut);

			c1 = c1.replace(/\?\?\?/g, '');
			c1 = c1.replace(/!!!/g, '');
			c2 = c2.replace(/\?\?\?/g, '');
			c2 = c2.replace(/!!!/g, '');
			c3 = c3.replace(/\?\?\?/g, '');
			c3 = c3.replace(/!!!/g, '');
		
			cont_cache = c2;
		
			free_c.innerHTML = c1 + '<tr><td>___</td></tr>' + c3;			
		}
		else
		{
			str = str.replace(/\?\?\?/g, '');
			str = str.replace(/!!!/g, '');
			free_c.innerHTML = str;
		}	
	}
}

function fn_cont_cut()
{
	var conts = new Array();
	conts[1] = getObject('cont_' + main_mode + '_0');
	
	if(conts[1] && conts[1].innerHTML.match(/___/))
	{
		var act_inner = conts[1].innerHTML;
		var new_inner = act_inner.replace(/\<tr\>\s*\<td\>\s*___\s*\<\/td\>\s*\<\/tr\>/ig, cont_cache);
	
		conts[1].innerHTML = new_inner;
	}
	fn_heights();
}

function fn_load_item_details()
{
	url = '/_inc/php/get_item_details.php?id=' + ai.id + '&type=' + ai.itype + '&mode=' + ai.mode + '&port_mode=' + port_mode;
	var set_history = '';
	if(!fn_is_empty(ai.id))
	{
		set_history = fn_set_browser_history();
	}
	jah(url, 'cont_' + main_mode + '_0', 'fn_update_browser_ckbxs();fn_heights();'+set_history);
}

function fn_set_browser_history()
{
	var last_hist_item = br_history[main_mode].ids[br_history[main_mode].ids.length-1] + '';
	
	// no doubles in br_history
	if(br_history[main_mode].ids.fn_array_search(ai.id + '_' + ai.mode) == -1)
	{
		br_history[main_mode].ids = new Array(ai.id + '_' + ai.mode);
		/*
		if(last_hist_item.substr(last_hist_item.indexOf('_') + 1, 1) != 1)
		{
			br_history[main_mode].ids.push(ai.id + '_' + ai.mode);
		}
		else
		{
			br_history[main_mode].ids[br_history[main_mode].ids.length - 1] = ai.id + '_' + ai.mode;
		}
		*/
	}
	
	var url_add = '';
	if(searchmode)
	{
		url_add = '&searchmode=1';
	}
	
	if(port_mode)
	{
		url_add += '&port_mode=true';
	}
	
	br_history[main_mode].itype = ai.itype;
	var url = '/_inc/php/get_history.php?type='+br_history[main_mode].itype+'&id_str=' + br_history[main_mode].ids.join(',') + url_add;
	getObject('tb4' + [main_mode] + '1').style.display = 'block';
	jah(url, 'tb4' + [main_mode] + '1');
}

// Konstructor for History Object
function History_Obj(itype)
{
	this.itype = itype;
	this.ids	= new Array();
}

function fn_remove_from_history(arr_pos)
{
	br_history[main_mode].ids = br_history[main_mode].ids.splice(0,arr_pos);
}


function fn_cache_search_cont(new_cache)
{
	if(new_cache)
	{
		br_cache = new Array();
	}
	// get actual content
	var cont = getObject('cont_1_0');
	var hist = getObject('tb411');
	var inner = new Array();
	inner[0] = cont.innerHTML;
	inner[1] = hist.innerHTML;
	br_cache.push(inner);
	//show_br_cache();
}

function fn_load_cache()
{
	var output = '';
	
	hide_pack3();	
	
	if(br_cache && br_cache.length > 0)
	{
 		output = br_cache.pop();
		getObject('cont_1_0').innerHTML = output[0];
		getObject('tb411').innerHTML = output[1];
		fn_heights();
		fn_update_browser_ckbxs();
	}
	else
	{
		fn_sw_mm(1);
	}
}

function fn_update_vis_items_display()
{
	if(admin_mode)
	{
		return true;
	}
	
	if(vis_arr.length)
	{
		var vis_str = (port_mode) ? 'Visível no mapa' : 'Visible sur la carte';
		
		str = '	<div id="vis_tab_l">' + vis_str + '</div>\n' +
					' <div id="vis_tab_r"></div>';
	
		getObject('tb6').style.display = 'block';
		getObject('tb61').innerHTML = str;
		
		getObject('tb621').innerHTML = '<table id="vis_item_list" style=""></table>';
		var tbody = document.createElement('tbody');
		tbody.id = 'vis_item_tbody';
		getObject('vis_item_list').appendChild(tbody);
		
		if(vis_arr.length > 4)
		{
			getObject('tb621').style.height = '80px';
		}
		else
		{
			getObject('tb621').style.height = '';
		}
		
		for(var i = vis_arr.length-1; i >= 0; i--)
		{
			var vis_item_str = '';
			arr = vis_arr[i].str.split('--');
			if(vis_arr[i].mode == 2)
			{
				vis_item_str = arr[1];
				var class_name = 'cat_name';
			}
			else if(vis_arr[i].mode == 1)
			{
				item_arr = arr[0].split('_');
				vis_item_str = item_arr[3];
				var class_name = 'item_name';
			}
			
			var list_class = 'browser_tr_even';
			if(i%2==0)
			{
				//list_class = 'browser_li_odd';
			}
			
			vis_item = document.createElement('tr');

			vis_item.className 	= list_class;
			vis_item.lc 				= list_class;
			vis_item.itype 			= vis_arr[i].itype;
			vis_item.mm 		= vis_arr[i].mm;
			vis_item.onmouseover 	= function()
			{
				this.className='browser_tr_sel';
				this.style.backgroundPosition = 'left bottom';
				if(this.mm == 2)
				{
					this.style.background = 'url(/_res/tb/xl/bg_selected_immo.png) no-repeat left bottom'; 
				}
				if(this.mm == 3)
				{
					this.style.background = 'url(/_res/tb/bg_sel_item_sw.png) no-repeat left bottom'; 
				}
				if(this.mm == 4)
				{
					this.style.background = 'url(/_res/tb/xl/bg_selected_hore.png) no-repeat left bottom'; 
				}
				if(this.mm == 5)
				{
					this.style.background = 'url(/_res/tb/xl/bg_selected_aumo.png) no-repeat left bottom'; 
				}
			};
			vis_item.onmouseout 	= function()
			{
				this.className=this.lc;
				if(this.mm == 2 || this.mm == 3 || this.mm == 4 || this.mm == 5)
				{
					this.style.backgroundImage = 'none'; 
				}
			};

			getObject('vis_item_list').appendChild(vis_item);

			vis_item_chbx = document.createElement('input');
			vis_item_chbx.className = 'cat_chck';
			vis_item_chbx.type = 'checkbox';
			vis_item_chbx.checked = true;
			vis_item_chbx.defaultChecked = true;
			is_set = fn_in_vis_arr(vis_arr[i].itype, vis_arr[i].mode, vis_arr[i].id);
			vis_item_chbx.pos_id = is_set[2];
			
			vis_item_chbx.uncheck_id = 'chk_bx_'+vis_arr[i].itype+'_'+vis_arr[i].mode+'_'+vis_arr[i].id;
			vis_item_chbx.onclick = function(){fn_remove_icons(this.pos_id);fn_update_browser_ckbxs(this.uncheck_id, 'off');};
			
			vis_item_name = document.createElement('p');
			vis_item_name.className = class_name;
			vis_item_name.id = vis_arr[i].id;
			vis_item_name.itype = vis_arr[i].itype;
			vis_item_name.mode = vis_arr[i].mode;
			
			vis_item_icon = document.createElement('img');
			vis_item_icon.className = 'vis_items_icon';
			
			var icon_pos = parseInt(is_set[2] % conf_num_icons) + 1;
			
			if(vis_arr[i].itype == 1 ||	vis_arr[i].itype == 2 || vis_arr[i].itype == 4 || vis_arr[i].itype == 5)
			{
				vis_item_icon.style.margin = '4px';
				
				switch(vis_arr[i].mm)
				{
					case 2 : icon_pos = 'i'; break;
					case 4 : icon_pos = 'r'; break;
					case 5 : icon_pos = 'a'; break;
					default: break;
				}

				icon_src = comp_icon_path + icon_pos + '0.png';
			}
			else if(vis_arr[i].mm == 3)
			{
				icon_src = hobo_icon_path + vis_arr[i].symbol;
			}
			
			
			vis_item_icon.src = icon_src;
			vis_item_name.mm 		= vis_arr[i].mm;
			vis_item_name._x 		= vis_arr[i]._x;
			vis_item_name._y 		= vis_arr[i]._y;
			vis_item_name.onclick	= function()
			{
				fn_sw_mm(this.mm);
				if(this.mm != 4)
				{
					zoomToPoint(this._x + '-' + this._y, zoom_level);
					fn_set_active(this.id, this.itype, this.mode);					
				}
				else
				{
					if(this.mode == 1)
					{
						list_det(this.id, 4);
					}
				}
				if(this.mm == 1)
				{
					// company
					if(this.mode == 1)
					{
						fn_load_item_details();
					}
					// category
					else if(this.mode == 2)
					{
						fn_load_browser();
					}
				}
			};
			vis_item_name.innerHTML = vis_item_str;


			var td1 = document.createElement('td');
			
			td1.style.width = '1%';
			td1.appendChild(vis_item_chbx);
			vis_item.appendChild(td1);
			
			var td2 = document.createElement('td');
			td2.appendChild(vis_item_name);
			vis_item.appendChild(td2);

			var td3 = document.createElement('td');
			td3.style.width = '1%';
			td3.appendChild(vis_item_icon);
			vis_item.appendChild(td3);
			
			getObject('vis_item_tbody').appendChild(vis_item);
			
		}
	}
	else
	{
		getObject('tb6').style.display = 'none';
	}
	fn_heights();
	return true;
}

function fn_set_zoom(init)
{

	var obj = 		getObject('tb121');
	var slider = 	getObject('tb1211');
	var output = '';
	
	if(init)
	{
		for(var i = 1; i <= 5; i++)
		{
			var new_div = document.createElement('div');
			new_div.zm_val = i;
			new_div.onclick = function(){setZoomLevel(zoom_levels[this.zm_val]);};
			new_div.className = 'zoom_tool_hover';
			obj.appendChild(new_div);	
		}
		slider.onmousedown = function(event){dragStart(event, this.id);};
		slider.onmouseup = function(){dragStop();};		
	}
	
	// get zoom_level_id
	var zm_level = zoom_levels.fn_array_search(zoom_level);
	var move_to = (zm_level - 1) * 15 + 'px';
		
	// set slider
	slider.style.top = move_to;
	
}

function fn_remove_obj(obj)
{
	var o = getObject(obj);
	if(o)
	{
		o.parentNode.removeChild(o);
	}
}

function fn_remove_style_att(att, obj_str)
{
	if(document.all)
	{
		if(document.all.obj_str)
		{
			eval('document.all.' + obj_str + '.style.removeAttribute("' + att + '", false)');
			
		}
	}
	else
	{
		if(document.getElementById(obj_str))
		{
			eval('document.getElementById(obj_str).style.'+att+' = ""');
		}
	} 
}

// check if input is empty
function fn_is_empty(input_str)
{ 
	return (null == input_str || "" == input_str) 
}

function fn_loader()
{
	loader_id = 'duration_loader';
	
	if(fn_loader.arguments[0])
	{
		if(!getObject(loader_id))
		{
			var _class = 'broad';
			if(main_mode == 1 || main_mode == 3)
			{
				_class = 'narrow';
			}
			
			var loader = document.createElement('img');
			loader.src = '/_res/loader_w.gif';
			loader.id = loader_id;
			loader.className = _class;
			loader.style.display = 'block';
		
			document.body.appendChild(loader);			
		}
	}
	else
	{
		if(getObject(loader_id))
		{
			document.body.removeChild(getObject(loader_id));
		}
	}
}

function fn_get_best_popup_pos(event)
{
	// 4 | 1
	// -----
	// 3 | 2
	
	var win_size = fn_get_win_height();
	var win_width = win_size[0];
	var win_height = win_size[1];
	
	var m_pos = fn_get_cursor_position(event);
	var m_x = m_pos[0];
	var m_y = m_pos[1];
	
	if(m_x >= (win_width/2) + 15)
	{
		if(m_y >= (win_height/2) - 15)
		{
			return 4; 
		}
		else
		{
			return 3;
		}
	}
	else
	{
		if(m_y >= (win_height/2) - 15)
		{
			return 1; 
		}
		else
		{
			return 2;
		}
	}
}

// get window height 
function fn_get_win_height()
{
 	var h = '';
	var w = '';

	if (window.innerWidth) { h = window.innerHeight; w = window.innerWidth} // ns4
	else if(document.body)
	{
	  h = document.body.clientHeight;
		w = document.body.clientWidth; 
	  if (document.body.offsetHeight == h && document.documentElement && document.documentElement.clientHeight)
	  {
	   	h = document.documentElement.clientHeight;
			w = document.documentElement.clientWidth;
	  }
	}
	return new Array(w, h);
}

function fn_get_cursor_position(event, obj_name)
{
	// Get cursor position with respect to the page.
	if (browser.isIE)
	{
			x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
			y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
	}
	if (browser.isNS)
	{
		
		x = event.clientX + window.scrollX;
		y = event.clientY + window.scrollY;
	}	
	
	if(obj_name)
	{
		obj = getObject(obj_name);
		if(obj)
		{
			x = x - stripPx(obj.style.left);
			y = y - stripPx(obj.style.top);
		}
	}
	
	return new Array(x, y);
	
}

function extra_search(itype)
{
	result_list = getObject('tb311_list_c_'+itype);
	if(result_list.style.display == 'block' && result_list.innerHTML == '')
	{
		query = encodeURIComponent(getObject('search').value);
		url = '/_inc/php/search_engine.php?extra_search='+itype+'&a=' + query;
		jah(url, 'tb311_list_c_'+itype, 'heightTb311()'); 		
	}
}

function getObject(name)
{
	var ns4 = (document.layers) ? true : false;
	var w3c = (document.getElementById) ? true : false;
	var ie4 = (document.all) ? true : false;
	
	if (ns4) return eval('document.' + name);
	if (w3c) return document.getElementById(name);
	if (ie4) return eval('document.all.' + name);
	
	return false;
}

function removeChildren(node)
{
	var len = node.childNodes.length;
	while (node.hasChildNodes()) { node.removeChild(node.firstChild); }
}

function search(e)
{		
	var keycode;
	
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	
	if (keycode == 13)
	{
		var s_field = getObject('search');
		var s_len		= s_field.value.length;
		if (s_len >= 2)
		{
			delayed_search();
		}
	}
}

function delayed_search()
{
	hide_pack3();
	if(main_mode != 1)
	{
		fn_sw_mm(1);
	}
	
	var query = getObject('search').value; 	
	if(query.length >= 2)
	{
		query = encodeURIComponent(query);
		var url = '/_inc/php/search.php?a=' + query + '&port_mode=' + port_mode;
		
		// delete history
		br_history[1].ids = new Array();
		getObject('tb411').innerHTML = '';
		
		searchmode = true;
		getObject('cont_' + main_mode + '_0').innerHTML = '<div><img src="../_res/loader.gif"/></div>';
		jah_back(url, 'fn_fill_browser_cont(result);fn_cache_search_cont(true);fn_heights();');
	}
}

function send_information(itype)
{
	jah_post_array('/_inc/php/information.php', 'information_form', itype+'_form');
}

function set_viaah_logo()
{
	var url		= 'http:\/\/' + document.location.host;

	var logo = document.createElement('div');
	logo.className = 'viaah_logo';
	logo.id = 'viaah_logo';
	logo.url = url;
	logo.onclick = function(){window.open(this.url);};
  document.body.appendChild(logo);	
}

function set_copyright()
{
	var copyright = document.createElement('div');
	copyright.className = 'iframe_copyright';
	copyright.id = 'iframe_copyright';
	
	// GET YEAR
	var d = new Date();
	var y = d.getFullYear();
	
	copyright.innerHTML = '<span><a href="http:\/\/www.viaah.lu">Viaah! Copyright &copy; ' + y + ' Fisalis SA</a></span>';
  document.body.appendChild(copyright);	
}

function set_zoom_tool()
{
	var z_tool = document.createElement('div');
	z_tool.innerHTML = '<div class="zoom_tool_top" onclick="zoomOut()"></div><div class="zoom_tool_bottom" onclick="zoomIn()"></div>';
	z_tool.className = 'zoom_tool';
	z_tool.id = 'zoom_tool';
  document.body.appendChild(z_tool);
	
}

function set_zoom_display()
{
	var z_dis = document.createElement('div');
	var inner_html = '';
	var first_elem = 'style="margin-top:11px;"';
	for(var i = 5; i>=1; i--)
	{
		if(i < 5)
		{
			first_elem = '';
		}
		inner_html += '<div ' + first_elem + ' class="zoom_switcher" onclick="setZoomLevel('+zoom_levels[i]+')"></div>';
	}
	z_dis.innerHTML = inner_html;
	z_dis.className = 'zoom_display';
	z_dis.id = 'z_display';
  document.body.appendChild(z_dis);
	//Create Arrow
	var z_arr = document.createElement('div');
	z_arr.className = 'zoom_arrow';
	z_arr.id = 'z_arrow';
	getObject('z_display').appendChild(z_arr);
	set_zoom_arr_position();
	
}

function set_zoom_arr_position()
{
	if(getObject('z_arrow'))
	{
		var arrow = getObject('z_arrow');
		var offset = 101;
		var zoom = zoom_levels.fn_array_search(zoom_level);
		var position = zoom * 18;
		arrow.style.top = offset - position + 'px'; 
	}
}

function stripPx(value)
{
	if (value == "") return 0;
	return parseFloat(value.substring(0, value.length - 2));
}

