/*
	checked functions names to be fyi_
	UPDATED 30 JULY 2007
*/
var dragger = new Object();
	dragger.zIndex = 0;
var old_marker = 0;
var new_marker = 0;
var marker_item = 0;
var map, lat, lng, scl;
var doc_high, doc_wide;

function bga_navigate(parms)
{
	if (parms=='type=email'){
		bga_mailman();
	} else {
		window.open('index.php?'+parms,'_self');
	}
}

function bga_mailman(){
	var ema_array = new Array('mai','lto:','bar','nab','y@bar','naby','gun','ning.co','m');
	ema_str = ema_array.join('');
//	alert (ema_str);
	window.open(ema_str,'_self');
}

function fyi_resize(){
	if (window.innerHeight) {
		doc_high = window.innerHeight;
		doc_wide = window.innerWidth;
	} else {
		doc_high = document.body.clientHeight;
		doc_wide = document.body.clientWidth;
	}
	// menu bar height = 64 px
	// margins = 16 px
//	fyi_layer_resize('fyi_view');
//	fyi_layer_resize('fyi_over');
/*	
	the fyi_view and/or fyi_over divs should only be as big as needed.
	fyi_view
		fyi_v_middle
	var mid_high = 	
*/
	var fyi_view = document.getElementById('fyi_view_layer');
		fyi_view.style.width = (doc_wide - 56) + "px";
	var fyi_v_middle = document.getElementById('fyi_view_middle');
	var mid_high = fyi_v_middle.offsetHeight;
	if (mid_high>(doc_high-124))
	{
		fyi_v_middle.style.height = ((doc_high - 124) + "px");
		fyi_v_middle.style.overflow = "auto";
	} else {

	}
	var mid_html = fyi_v_middle.innerHTML;
	var fyi_over = document.getElementById('fyi_over_layer');
	fyi_over.style.width = (doc_wide - 56) + "px";
	var fyi_o_middle = document.getElementById('fyi_over_middle');
	fyi_o_middle.style.height = ((doc_high - 124) + "px");
}

function fyi_map_load(g_type,g_lat,g_lng,g_scl) {
	try{
		if (GBrowserIsCompatible()) {
			lat = g_lat;
			lng = g_lng;
			scl = g_scl;
			map = new GMap2(document.getElementById('fyi_map_layer'));
			map.setCenter(new GLatLng(lat, lng), scl);
			fyi_map_populate(fyi_map_parms());
		} else {
			alert ("nothing happening");
		}
	} catch(e){}
}

function fyi_map_property(lat,lng)
{
	fyi_hide('fyi_view_layer');
	try{	
		map.panTo(new GLatLng(lat,lng));
		map.setMapType(G_SATELLITE_MAP);
		map.setZoom(16);
		fyi_map_populate(fyi_map_parms());
	} catch(e){}
}

function fyi_map_parms()
{
	try{
		var map_bounds = map.getBounds();
		var c = map.getCenter();
		var sw = map_bounds.getSouthWest();
		var ne = map_bounds.getNorthEast();
		var c_lat = c.lat();
		var c_lng = c.lng();
		var n = ne.lat();
		var e = ne.lng();
		var w = sw.lng();
		var s = sw.lat();
		var url_str = ("php/gxml.php?lat=" + c_lat + "&lng=" + c_lng + "&n=" + n + "&e=" + e + "&w=" + w + "&s=" + s);
		return url_str;
	} catch(e){}
}

function fyi_pngfix()
{
	if (navigator.appVersion.indexOf("MSIE")){
		var arVersion = navigator.appVersion.split("MSIE");
		var version = parseFloat(arVersion[1]);
		if ((version >= 5.5) && (document.body.filters) && (version <7)) 
		{
//			alert('pngfix');
			for(var i=0; i<document.images.length; i++)
			{
				var img = document.images[i];
				var imgName = img.src.toUpperCase();
		    	if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
		    	{
		    		var imgID = (img.id) ? "id='" + img.id + "' " : ""
		    		var imgClass = (img.className) ? "class='" + img.className + "' " : "";
					var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ";
					var imgStyle = "display:inline-block;" + img.style.cssText ;
					if (img.align == "left") {imgStyle = "float:left;" + imgStyle};
					if (img.align == "right") {imgStyle = "float:right;" + imgStyle};
					if (img.parentElement.href) {imgStyle = "cursor:hand;" + imgStyle};
					var strNewHTML = "<span " + imgID + imgClass + imgTitle + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";" + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader" + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>";
					img.outerHTML = strNewHTML;
					i = i-1;
				}
			}
		}
	}
}

function fyi_map_populate(url_str){
//	$url = "$root/php/gxml.php?type=".$type."&lng=".$g_lng."&lat=".$g_lat."&zoom=".$g_scl."&wide=".$g_wide."&high=".$g_high;
//	map.clearOverlays();
	try{
		var request = GXmlHttp.create();
//		map.clearOverlays();
		request.open('GET', url_str, true);
		request.onreadystatechange = function() {
			if (request.readyState == 4) {
				var xmlDoc = request.responseXML ;
				var markers = xmlDoc.documentElement.getElementsByTagName('marker');
				for (var i = 0; i< markers.length; i++) 
				{	
					var lng = parseFloat(markers[i].getAttribute('lng'));
					var lat = parseFloat(markers[i].getAttribute('lat'));
					var lnk = parseFloat(markers[i].getAttribute('lnk'));
					var tab = markers[i].getAttribute('tab');
					var icon = new GIcon();
						icon.image = markers[i].getAttribute('icn');
						icon.shadow = markers[i].getAttribute('shd');
						icon.iconSize = new GSize(8,32);
						icon.shadowSize = new GSize(32,32);
						icon.iconAnchor = new GPoint(4,32)
		  			var point = new GPoint(lng,lat);
		  			var marker = new GMarker(point,icon);
		  				marker.lnk = lnk;
		  				marker.lat = lat;
		  				marker.lng = lng;
		  				marker.tab = tab;
		  				map.addOverlay(marker);
		  			GEvent.addListener(marker, 'click', function() {
		  				if (map.getZoom()<13) {
		  					map.zoomIn();
		  					}
		  				map.panTo(new GLatLng(this.lat,this.lng));
		  				var parms = "view&lnk="+this.lnk+"&tab="+this.tab;
		  				fyi_show(parms);
		  			});
		  		}
		  	}
		 }
		 request.send(null);
	} catch(e){}
}

function fyi_show(func){
	var page_url = "php/fyi_view.php?func=" + func ;
	if (func == 'enter'){
		var username = document.getElementById("username").value;
		var password = document.getElementById("password").value;
		page_url+= "&username="+username+"&password="+password;
	}
	fyi_page_load(page_url,'fyi_view_layer');
}

function fyi_overlay(func)
{
	var page_url = "php/fyi_overlay.php?func=" + func ;
	fyi_page_load(page_url,'fyi_over_layer');
}

function fyi_page_load(page_url,layer_id)
{	
//	alert (page_url);
	try {
		var request = GXmlHttp.create();
	} catch (e) {
		var request = new XMLHttpRequest();
	}
	request.open('GET', page_url, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var fyi_viewer = document.getElementById(layer_id);
			fyi_viewer.innerHTML = request.responseText;
			fyi_viewer.style.top="48px";
			fyi_viewer.style.left="8px";
			fyi_resize();
			fyi_map_populate(fyi_map_parms());
			fyi_pngfix();
		}
	}
	request.send(null);
}

function fyi_agent(func){
	var page_url = "php/fyi_agent.php?func=" + func ;
	switch(func){
		case "enter":
			var username = document.getElementById("username").value;
			var password = document.getElementById("password").value;
			page_url+= "&username="+username+"&password="+password;
		break;
		case "saveinfo":
			var first_name = document.getElementById("first_name").value;
			var last_name = document.getElementById("last_name").value;
			var email = document.getElementById("user_name").value;
			var job_title = document.getElementById("job_title").value;
			var organisation = document.getElementById("organisation").value;
			var address_street = document.getElementById("address_street").value;
			var address_city = document.getElementById("address_city").value;
			var address_region = document.getElementById("address_region").value;
			var address_code = document.getElementById("address_code").value;
			var address_country = document.getElementById("address_country").value;
			var telephone = document.getElementById("telephone").value;
			var fax = document.getElementById("fax").value;
			var mobile = document.getElementById("mobile").getAttributevalue;
			var url = document.getElementById("url").value;
			page_url+= "&first_name="+first_name+"&last_name="+last_name;
			page_url+= "&email="+email+"&organisation="+organisation+"&job_title="+job_title;
			page_url+= "&address_street="+address_street+"&address_city="+address_city+"&address_region="+address_region+"&address_code="+address_code+"&address_country="+address_country;
			page_url+= "&telephone="+telephone+"&fax="+fax+"&mobile="+mobile+"&url="+url;
		break;
		case "savepass":
			var pass_old = document.getElementById("pass_old").value;
			var pass_new = document.getElementById("pass_new").value;
			page_url+= "&pass_new="+pass_new+"&pass_old="+pass_old;
		break;
		default:
			page_url+="";
	}
	fyi_page_load(page_url,'fyi_view_layer');
}

function fyi_image_up($func)
{
	document.img_form.submit();
}

function fyi(id)
{
//	use this to call fyi_show from inside a document to show text
	fyi_show("beta&ID="+id);
}

function fyi_hide(layer_id){
	
	var fyi_viewer = document.getElementById(layer_id);
//	slight fudge
	switch (layer_id)
	{
		case "fyi_view_layer":
			fyi_viewer.innerHTML = "<div id='fyi_view_middle'></div>";
		break;
		case "fyi_over_layer":
			fyi_viewer.innerHTML = "<div id='fyi_over_middle'></div>";
		break;
	}
	fyi_viewer.style.top= ("-1000px");
}

function fyi_changeElType(id,newtype)
{
	var element = document.getElementById(id);
	try {
	   element.setAttribute("type", newtype);
	} catch (e) {
	   var newElement = null;
	   var idStr = element.getAttribute("id");
	   var typeStr = element.getAttribute("type");
	   var tempName = element.getAttribute("name");
	   var valueStr = element.getAttribute("value");
	   try {
	      newElement = document.createElement("<input id='" + idStr + "' type='" +typeStr+ "' name='" +tempName+ "'>");
	   } catch (e) {}
	   if (!newElement) {
	      newElement = document.createElement("input");
	      newElement.setAttribute("id", idStr);
	      newElement.setAttribute("type", typeStr);
	      newElement.setAttribute("name", tempStr);
	   }
	   element.parentNode.replaceChild(newElement, element);
	}
}

//	FUNCTIONS SPECIFIC TO AGENT SECTIONS

function fyi_property_save(a,b)
{
	switch(b){
		case "list":
			var p_caption 			=  fyi_urlprep(document.getElementById('caption_'+a).value);
			var p_value 			=  document.getElementById('value_'+a).value;
				p_value = de_eurify(p_value);
			var p_title_en 			=  fyi_urlprep(document.getElementById('title_en_'+a).value);
			var p_title_it 			=  fyi_urlprep(document.getElementById('title_it_'+a).value);
			var p_status 			=  fyi_urlprep(document.getElementById('status_'+a).value);
			var p_str='propsave&pid='+a+'&type='+b+'&caption='+p_caption+'&value='+p_value+'&title_en='+p_title_en+'&title_it='+p_title_it+'&status='+p_status;
			break;
		case "solo":
			var p_caption 			=  fyi_urlprep(document.getElementById('caption').value);
			var p_value 			=  document.getElementById('value').value;
				p_value = de_eurify(p_value);
			var p_title_en 			=  fyi_urlprep(document.getElementById('title_en').value);
			var p_title_it 			=  fyi_urlprep(document.getElementById('title_it').value);
			var p_status 			=  fyi_urlprep(document.getElementById('status').value);
			var p_address_street	=  fyi_urlprep(document.getElementById('address_street').value);
			var p_address_city		=  fyi_urlprep(document.getElementById('address_city').value);
			var p_address_region 	=  fyi_urlprep(document.getElementById('address_region').value);
			var p_address_code 		=  fyi_urlprep(document.getElementById('address_code').value);
			var p_address_country 	=  fyi_urlprep(document.getElementById('address_country').value);
			var p_latitude 			=  document.getElementById('latitude').value;
			var p_longitude 		=  document.getElementById('longitude').value;
			var p_str='propsave&pid='+a+'&type='+b+'&caption='+p_caption+'&value='+p_value+'&title_en='+p_title_en+'&title_it='+p_title_it+'&status='+p_status+'&address_street='+p_address_street+'&address_city='+p_address_city+'&address_code='+p_address_code+'&address_region='+p_address_region+'&address_country='+p_address_country+'&latitude='+p_latitude+'&longitude='+p_longitude;
			break;
		default:
			var p_str ="";
			break;
	}
//	alert(p_str);
	fyi_agent(p_str);
}

//	FUNCTIONS FOR 'FIND' AND 'ITALY' SECTIONS

function fyi_urlprep(str)
{
	return escape(str);
}

function fyi_markerpicker(a)
{
	var markerpicker = document.getElementById("fyi_markerpicker");
	marker_item = a;
	markerpicker.style.top = (32 * a);
}

function fyi_markerpicked(b,c)
{
	alert ('picked');
	document.getElementById("fyi_markerpicker").style.top = -128;
	fyi_show("updatemarkers&markeritem="+marker_item+"&markervalue="+b+"&markeraction=icon&table="+c);
}


function fyi_keywordpicked(a,b,c)
{
	fyi_show("updatemarkers&markeritem="+a+"&markervalue="+b+"&markeraction=keyword&table="+c);

}

function fyi_dropmarker(a,c)
{
	fyi_show("updatemarkers&markeritem="+a+"&markeraction=drop&table="+c);

}
function fyi_addmarker(c)
{
	fyi_show("updatemarkers&markeraction=add&table="+c);

}
/*
	EVERYTHING BELOW THIS TO BE CHECKED
*/


function fy_your_show(type)
{
	var page_url = "php/fy_your.php?";
	if (type == 'login'){
		username = document.getElementById("username").value;
		password = document.getElementById("password").value;
		page_url+= "type=login&username="+username+"&password="+password;
	} else {
		page_url+= "type=" + type;
	} 
	var request = GXmlHttp.create();
	request.open('GET', page_url, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var fy_main = document.getElementById("fy_main");
			fy_main.innerHTML = request.responseText;
			fy_main.style.width ="400px"
			fy_main.style.top="48px";
			fy_main.style.left="8px";
		}
	}
	request.send(null);
}




function show_marker_picker(item,value)
{
	old_marker = value;
	marker_item = item;
	document.getElementById("marker_icons").style.top = ((item*23)+2) + "px";
}

function fy_find_show()
{
	fy_find_submit("action=");
}


function fy_find_submit(vars)
{
	// reload the keys html, saving the modified visitor preferences
	var url = "php/fy_find.php?" + vars
	var request = GXmlHttp.create();
	request.open('GET', url, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var fy_main = document.getElementById("fy_main");
			fy_main.innerHTML = request.responseText;
			fy_main.style.width ="400px"
			fy_main.style.top="48px";
			fy_main.style.left="8px";
			map_populate(gxml_parms());
	 	}
	}
	request.send(null);
}

function fy_keyword_picked(marker_item,marker_tgt)
{
	fy_find_submit("action=update_keyword&marker_tgt="+marker_tgt+"&marker_item="+marker_item);

}

function fy_add_marker()
{
	fy_find_submit("action=add_marker");
}


function fy_show_show(lnk,action)
{
	var request = GXmlHttp.create();
	var url = "php/fy_show.php?ID="+lnk+"&action="+action;
		request.open('GET', url, true);
		request.onreadystatechange = function() {
			if (request.readyState == 4) {
				var hi_show = document.getElementById("fy_main");
				hi_show.style.left=0;
				hi_show.innerHTML= request.responseText;
	 		}
	 	}
	request.send(null);
}



function i_hide_show()
{
	var hi_show = document.getElementById("hi_show_layer");
	hi_show.style.left= "-770px";
}

function fyi_drag(event, id) {
//	var ie_pc = ((browser.platform == 'pc')&&(browser.browser== 'ie'));
// 	If possible use element ID otherwise use clicked element.
	if (id){
		dragger.el = document.getElementById(id);
		if(dragger.el.id == "prc_min_slider") { dragger.name = "prc_min"; dragger.pair="prc_max";}
		if(dragger.el.id == "prc_max_slider") { dragger.name = "prc_max"; dragger.pair="prc_min";}
	} else {
		if (event) {
			dragger.el = event.target;
		} else if (window.event) { 
			dragger.el = window.event.srcElement;
		}
		if (dragger.el.nodeType == 3) {
			dragger.el = dragger.el.parentNode;
		}
	}
	dragger.el.style.zIndex = ++dragger.zIndex;
	
	if (event) {
		dragger.c_x = event.clientX + window.scrollX;
		dragger.c_y = event.clientY + window.scrollY;
	} else if (window.event){
		dragger.c_x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
		dragger.c_y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
	}
	
	dragger.e_x = dragger.el.style.left;
	dragger.e_y = dragger.el.style.top;
	dragger.e_x = parseInt(dragger.e_x, 10);
	dragger.e_y = parseInt(dragger.e_y, 10);
	if (isNaN(dragger.e_x)) { dragger.e_x = 0;}
	if (isNaN(dragger.e_y)) { dragger.e_y = 0;}

	// Update element's z-index.


	// Capture mousemove and mouseup events on the page.

	if (document.addEventListener) {
		document.addEventListener("mousemove", drag_on,	 true);
		document.addEventListener("mouseup", drag_off, true);
		event.preventDefault();
	} else if (document.attachEvent) {
		document.attachEvent("onmousemove", drag_on);
		document.attachEvent("onmouseup", drag_off);
		window.event.cancelBubble = true;
		window.event.returnValue = false;
	}
}

function de_eurify(n_str)
{
	//	cut out any currency symbols
	//	cut out any commas
	//	how to deal with italian number stuff...?
	//	just extract digits from the number
	var o_str = "";
	for (a=0;a<n_str.length;a++)
	{
		n_char = n_str.charAt(a);
		if (!isNaN(n_char))
		{
			o_str+=n_char;
		}
	}
	return parseFloat(o_str);
}

function i_pixels_to_euros(n)
{

	n = (n-71)*10000;
	return n;
}

function drag_on(event) {
	var x, y, f_offset, p_left, pair, dx, field;
	// Get cursor position with respect to the page.
	field = document.getElementById(dragger.name);
	if (event) {
		str = "event";
		x = event.clientX + window.scrollX;
		y = event.clientY + window.scrollY;
	} else if (window.event){
		str = "window.event";
		x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
		y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
	}

	// Move drag element by the same amount the cursor has moved.
	// dragger.e_x is...
	// dragger.c_x is...
	var dx = (dragger.e_x + x - dragger.c_x) ;
//	field.value =dx;
// if its the left one its position must be at least 5 px left of the right one and vice versa
	if (dragger.pair)
	{
		var pair = document.getElementById(dragger.pair+"_slider");
		var p_left = pair.style.left;
		if (p_left!=0)
		{
			p_left = p_left.split("px",1);
		} 
		p_left = parseInt(p_left,10);
		if (dragger.name == "prc_min"){
			if (dx > (p_left - 10)) {dx = (p_left - 10);}
		}
		if (dragger.name == "prc_max"){
			if (dx < (p_left + 10)) {dx = (p_left + 10);}
		}
		if (dx<71) {dx=71;}
		if (dx>320) {dx=320;}
	}
	dragger.el.style.left = dx + "px";
//	dragger.el.style.top = (dragger.e_y + y - dragger.c_y) + "px";
//	only allow horizonal sliding
	field.value = i_pixels_to_euros(dx);
	field.style.left = dx + "px";
	if (event.preventDefault) {
		event.preventDefault();
	} else {
		window.event.cancelBubble = true;
		window.event.returnValue = false;
	}
}

function drag_off(event) {

	// Stop capturing mousemove and mouseup events.
	if (event) {
		document.removeEventListener("mousemove", drag_on, true);
		document.removeEventListener("mouseup", drag_off, true);
	} else if (window.event) {
		document.detachEvent("onmousemove", drag_on);
		document.detachEvent("onmouseup", drag_off);
	}
	var min = i_pixels_to_euros(parseInt(document.getElementById('prc_min_slider').style.left));
	var max = i_pixels_to_euros(parseInt(document.getElementById('prc_max_slider').style.left));
	fyi_show("updateprice&table=properties&prc_min="+min+"&prc_max="+max);
}

