var left_coord, top_coord = 0;
var Timer;
var x, y, x1, y1, mouse_state = 0;
var SelectedItem;
var SelectedX, SelectedY;
var mMouseX, mMouseY;
var mWidth=0, mHeight=0;
var PointLs = 0;
var PointList = 0;
var pointOld=new Array();
var SHelem ;
var opac = 100;
var nOpacity = 0;

function coordpoint(ev){
 var ev = ev || window.event;
if(ev.offsetX || ev.offsetY) {
ncoordsMapsf(window.event.offsetX,window.event.offsetY)
} else {
ncoordsMapsf(ev.layerX,ev.layerY)
};
}

function view_capt() {
var PointLst  = getElemsTagName('div', 'objc');
if (PointLs==0){
PointLs=1;
var PointDispl="block";
} else {
PointLs=0;
var PointDispl="none";
}
for (var i=0; i<PointLst.length; i++){
document.getElementById(PointLst[i].id).style.display = PointDispl;
}
}

function vscale(n) {
document.getElementById("flag").style.display = "none";
if (PointList==0){
PointList  = getElemsTagName('div', 'obj');
pointOld=new Array(PointList.length);
var starth = map_height*(parseInt(document.mapsfform1.scalemap.value)/100)/2;
var startw = map_width*(parseInt(document.mapsfform1.scalemap.value)/100)/2;
for (var i=0; i<PointList.length; i++){
	pointOld[i] = new Array(3);
	pointOld[i][0]=PointList[i].id;
	pointOld[i][1]=starth/parseInt(document.getElementById(PointList[i].id).style.top);
	pointOld[i][2]=startw/parseInt(document.getElementById(PointList[i].id).style.left);
	}
}
if (n==0) {
correct -= 0.5;
correct = correct <=0 ? 0 : correct;
var scl = parseInt(document.mapsfform1.scalemap.value)-10;
var h1 = parseInt(map_height*(scl/100));
var w1 = parseInt(map_width*(scl/100));
if(h1 < 100 || w1 < 100) return;
document.mapsfform1.scalemap.value=scl
document.getElementById('my_map').scrollLeft -= (document.getElementById("m_map").width-w1)/2;
document.getElementById("m_map").width=w1;
document.getElementById('my_map').scrollTop -= (document.getElementById("m_map").height-h1)/2;
document.getElementById("m_map").height=h1;
} else{
correct+=0.5;
var scl = parseInt(document.mapsfform1.scalemap.value)+10;
document.mapsfform1.scalemap.value=scl
var h1 = parseInt(map_height*(scl/100));
var w1 = parseInt(map_width*(scl/100));
document.getElementById('my_map').scrollLeft += (w1-document.getElementById("m_map").width)/2;
document.getElementById("m_map").width=w1;
document.getElementById('my_map').scrollTop += (h1-document.getElementById("m_map").height)/2;
document.getElementById("m_map").height=h1;
}
scalemap = scl;
correct = scalemap == 100 ? 0 : correct;
for (var i=0; i<pointOld.length; i++){
document.getElementById(pointOld[i][0]).style.left = w1/2/pointOld[i][2]+correct+"px";
document.getElementById(pointOld[i][0]).style.top = h1/2/pointOld[i][1]+correct+"px";
}
movesel(1);
}
/***********************************************
* Dynamic Ajax Content- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/
var loadedobjects=""
var rootdomain="http://"+window.location.hostname
function ajaxpageMapsf(url, containerid){
if (!createDivMapsf("contentView")) return;
cw = document.getElementById("contentView");
cw.style.position = 'absolute';
cw.style.display = 'none';
cw.style.top = '0px';
cw.style.left = '0px';
cw.innerHTML='<div id=closeAjax style="display:none;text-align:right;cursor: move;" onmousedown="MoveMapsf(event)"  onmousemove="DragMapsf(\'contentView\', event, \'\');return false;"  onmouseup="DropMapsf();" onmouseout="DropMapsf();"><img  src="'+rootdomain+'/components/com_mapsf/images/close.gif" onclick = "resizeUnloader();" style=" cursor:pointer; "/></div><div id=contentAjax></div>';
if (!createDivMapsf("loader")) return;
ld = document.getElementById("loader");
ld.style.position = 'absolute';
ld.style.display = 'none';
ld.style.top = '0px';
ld.style.left = '0px';
ld.style.cursor = 'pointer';
ld.innerHTML='<img id=loaderGif  src="'+rootdomain+'/components/com_mapsf/images/loader.gif" onclick="resizeUnloader();"/>';
if (!createDivMapsf("screenfull")) return;
sfull = document.getElementById("screenfull");
sfull.style.position = 'absolute';
sfull.style.display = 'none';
sfull.style.top = '0px';
sfull.style.left = '0px';
var dw = document.width || document.documentElement.clientWidth || document.body.clientWidth;
var dh = document.height || document.documentElement.clientHeight || document.body.clientHeight;
sfull.style.height=getBodyScrollTop()+dh+"px";
sfull.style.width=getBodyScrollLeft()+dw+"px";
ShowHide("screenfull",0,60);
sfull.style.display = "block";
document.getElementById('contentAjax').innerHTML='';
document.getElementById("contentAjax").style.height="16px";
document.getElementById("contentAjax").style.width="16px";
document.getElementById("contentView").style.visibility='hidden';
document.getElementById("closeAjax").style.display='block';
document.getElementById("contentAjax").style.display='block'; 
document.getElementById("loader").style.width = "40px";
document.getElementById("loader").style.height = "40px";
if (leftcontent==0){
document.getElementById("contentView").style.left = screen.width/2-8+getBodyScrollLeft()+"px";
document.getElementById("loader").style.left = screen.width/2-parseInt(document.getElementById("loader").style.width)/2+getBodyScrollLeft()+"px";
} else {
document.getElementById("contentView").style.left = leftcontent+"px";
document.getElementById("loader").style.left=leftcontent+"px";
}
if (topcontent==0){
document.getElementById("contentView").style.top = screen.height/2-8+getBodyScrollTop()+"px";
document.getElementById("loader").style.top = screen.height/2-100-parseInt(document.getElementById("loader").style.height)/2+getBodyScrollTop()+"px";
} else {
document.getElementById("contentView").style.top = topcontent+"px";
document.getElementById("loader").style.top = topcontent+"px";
}
document.getElementById("loader").style.display='block';
document.getElementById('contentView').style.display='block'
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
loadpageMapsf(page_request, containerid)
}
page_request.open('GET', url, true)
page_request.send(null)
/*ShowHide("contentView");*/
setTimeout('reAjax();', 3000); 
}

function loadpageMapsf(page_request, containerid){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){
document.getElementById(containerid).innerHTML=page_request.responseText;
resizeAjax();
}
}

function resizeAjax(){
var wh =document.getElementById("tblAjax").offsetWidth;
var ht = document.getElementById("tblAjax").offsetHeight;
if (screen.width<wh) wh = screen.width-100;
if (screen.height-340<ht) ht = screen.height-340;
wh = wh < minwidth ? minwidth : wh+2;
ht = ht < 100 ? 100 : ht+2;
document.getElementById("contentAjax").style.width = wh+"px";
document.getElementById("contentAjax").style.height = ht+"px";
if (leftcontent==0) document.getElementById("contentView").style.left = screen.width/2-wh/2+getBodyScrollLeft()+"px";
if (topcontent==0) document.getElementById("contentView").style.top = screen.height/2-ht/2-100+getBodyScrollTop()+"px";
}
function reAjax(){
resizeAjax();
resizeLoader();
}

function resizeLoader(){
var resizeTrue=0;
var ldr =document.getElementById("loader");
if (parseInt(ldr.style.top) >= parseInt(document.getElementById("contentView").style.top)){
ldr.style.top=parseInt(ldr.style.top)-4+"px";
} else {
resizeTrue ++;
}
if (parseInt(ldr.style.left) >= parseInt(document.getElementById("contentView").style.left)){
ldr.style.left=parseInt(ldr.style.left)-4+"px";
} else {
resizeTrue ++;
}
if (parseInt(ldr.style.width) <= parseInt(document.getElementById("contentAjax").style.width)){
ldr.style.width=parseInt(ldr.style.width)+8+"px";
} else {
resizeTrue ++;
}

if (parseInt(ldr.style.height) <= parseInt(document.getElementById("contentAjax").style.height)){
ldr.style.height=parseInt(ldr.style.height)+8+"px";
} else {
resizeTrue ++;
}
if (resizeTrue<4) {
t=setTimeout('resizeLoader()', 1);
} else {
clearTimeout(t);
document.getElementById("contentView").style.visibility='visible';
document.getElementById("contentView").style.display='block';
document.getElementById("loader").style.display='none';
}
}
function resizeUnloader() {
var elema = document.getElementById("contentAjax");
var elemv = document.getElementById("contentView");
var wunl = parseInt(elema.style.width);
var hunl = parseInt(elema.style.height);
wunl = wunl > 30 ? wunl-30 : 20 ;
hunl = hunl > 30 ? hunl-30 : 20 ;
if (wunl < 30 && hunl < 30) {
clearTimeout(t);
document.getElementById('contentView').style.display='none';
document.getElementById('loader').style.display='none';
ShowHide('screenfull',0,60);
} else {
if (leftcontent==0) elemv.style.left = wunl > 30 ? parseInt(elemv.style.left)+15+"px" : elemv.style.left;
if (topcontent==0) elemv.style.top = hunl > 30 ? parseInt(elemv.style.top)+15+"px" : elemv.style.top;
elema.style.width = wunl+"px";
elema.style.height = hunl+"px";
document.getElementById('contentAjax').innerHTML='';
t=setTimeout('resizeUnloader()', 1);
}
}
/*  ------------------------------------------------------------------------------------------- */ 
function createDivMapsf(id,frm) {
	id = (id || 'DivMapsf'), frm = (frm || self);
	divContainer = layerReference(id);
	if (divContainer == null) {
			var body = (olIe4 ? frm.document.all.tags('BODY')[0] : frm.document.getElementsByTagName("BODY")[0]);
			if (olIe4&&!document.getElementById) {
				body.insertAdjacentHTML("beforeEnd",'<div id="'+id+'"></div>');
				divContainer=layerReference(id);
			} else {
				divContainer = frm.document.createElement("DIV");
				divContainer.id = id;
				body.appendChild(divContainer);
			}
	}
	return divContainer;
}
          
function mousedownobject(e,hrefurl,container,point) {
var e = e || window.event;
 var btnCode = e.button;
if (btnCode==2) { 
AddInfo(point);
} else {
ajaxpageMapsf(hrefurl,container);
}
}

function AddInfo(point){
if (point>0){
if (document.mapsfform3.newinfodop){
document.mapsfform3.newinfodop.value="";
document.mapsfform3.oimagedop.value="";
document.mapsfform3.objiddop.value=point;
}
document.getElementById("addinfo").style.display='none';
ShowHide('addinfo',1);
}
}
                                              
function getElemsTagName(tag, name) {
var elem = document.getElementsByTagName(tag);
     var arr  = new Array();
     for(i = 0,iarr = 0; i < elem.length; i++) {
          att = elem[i].getAttribute("name");
          if(att == name) {
               arr[iarr] = elem[i];
               iarr++;
          }
     }
return arr;
}

function scaleview(){
var elScale =  document.getElementById('sm_map');
var elem =  document.getElementById('minsel');
ShowHide("sm_map",1);
elem.style.opacity=0.4;
elem.style.filter="alpha(opacity=40)";
}

function MoveMapsf(ev) {
 var ev = ev || window.event;
 var btnCode;
   btnCode = ev.button;
	if (btnCode==0 || btnCode==1) { 
 	 mouse_state = 1; 
if (ev.pageX || ev.pageY) {
	mMouseX = ev.pageX;
	mMouseY = ev.pageY;
} else {
	mMouseX = ev.clientX;
	mMouseY = ev.clientY;
}
}
}
function DragMapsf(obj, ev, obj1) {
if (mouse_state == 1) {
 var ev = ev || window.event;
if (ev.pageX || ev.pageY) {
	evX = ev.pageX;
	evY = ev.pageY;
} else  {
	evX = ev.clientX;
	evY = ev.clientY;
}
elm=document.getElementById(obj);
if (elm.style.left) {
	SelectedX = parseInt(elm.style.left);
	SelectedY = parseInt(elm.style.top);
} else {
var objStyle = elm.currentStyle || window.getComputedStyle(elm, null);
SelectedX = parseInt(objStyle.left) ;
SelectedY =  parseInt(objStyle.top) ;
}
mWidth=0;
mHeight=0;
var newCoordX = SelectedX + (evX - mMouseX);
var newCoordY =  SelectedY + (evY - mMouseY);
if (obj1!=''){
newCoordX = newCoordX<=0 ? 0 : newCoordX;
newCoordY = newCoordY<=0 ? 0 : newCoordY;
mWidth=parseInt(document.getElementById(obj1).style.width);
mHeight=parseInt(document.getElementById(obj1).style.height);
} 

if (mWidth >0) newCoordX = newCoordX+parseInt(elm.style.width)> mWidth ? mWidth-parseInt(elm.style.width) : newCoordX;
if (mHeight >0) newCoordY = newCoordY+parseInt(elm.style.height)> mHeight ? mHeight-parseInt(elm.style.height) : newCoordY;
elm.style.left = newCoordX+"px";
elm.style.top = newCoordY +"px";
if (ev.pageX || ev.pageY) {
	mMouseX = ev.pageX;
	mMouseY = ev.pageY;
} else {
	mMouseX = ev.clientX;
	mMouseY = ev.clientY;
}

return false;
}
}

function DropMapsf() {
mouse_state = 0; 
}


function ScrollLeft()
{
Timer = setInterval("document.getElementById('my_map').scrollLeft -= 10", cleatimer);
}
function ScrollRight()
{
Timer = setInterval("document.getElementById('my_map').scrollLeft += 10", cleatimer);
}

function ScrollTop()
{
Timer = setInterval("document.getElementById('my_map').scrollTop -= 10", cleatimer);

}
function ScrollBottom()
{
Timer = setInterval("document.getElementById('my_map').scrollTop += 10", cleatimer);
}

function movesel(ns){
if (ns==1){
document.getElementById("minsel").style.left=(document.getElementById("my_map").scrollLeft/scale/(scalemap/100))+"px";
document.getElementById("minsel").style.top=(document.getElementById("my_map").scrollTop/scale/(scalemap/100))+"px";
var vw = wwidth/scale/(scalemap/100);
vw=vw>parseInt(document.getElementById("sm_map").style.width) ? document.getElementById("sm_map").style.width : vw;
var vh = wheight/scale/(scalemap/100);
vh=vh>parseInt(document.getElementById("sm_map").style.height) ? document.getElementById("sm_map").style.height : vh;
document.getElementById("minsel").style.width=parseInt(vw)+"px";
document.getElementById("minsel").style.height=parseInt(vh)+"px";
} else {
document.getElementById("my_map").scrollLeft=(parseInt(document.getElementById("minsel").style.left)*scale*(scalemap/100));
document.getElementById("my_map").scrollTop=(parseInt(document.getElementById("minsel").style.top)*scale*(scalemap/100));
}
}

function getcoordMapsf() {
var el = document.getElementById("m_map");
var elem =  document.getElementById('minsel');
elem.style.display="block";
elem.style.opacity=0.4;
elem.style.filter="alpha(opacity=40)";
elem = document.getElementById("selarea");
elem.style.opacity=0.4;
elem.style.filter="alpha(opacity=40)";
  left_coord = getcoordx(el);
   top_coord = getcoordy(el); 
document.mapsfform1.left_value.value = left_coord;
document.mapsfform1.top_value.value = top_coord;
var l, t=0;
if (navigator.appName=='Opera'){
l=document.getElementById("my_map").scrollLeft+10+left_coord;
t=document.getElementById("my_map").scrollTop+10+top_coord;
} else {
l=left_coord+10;
t=top_coord+10;
}
}

function ncoordsMapsf(x,y) {
document.mapsfform1.newcrd.style.display = "none"
document.mapsfform2.newleft.value = parseInt(x/(document.mapsfform1.scalemap.value/100))-7;
document.mapsfform2.newtop.value = parseInt(y/(document.mapsfform1.scalemap.value/100))-7;
document.mapsfform1.newcrd.style.left = x-7+"px";
document.mapsfform1.newcrd.style.top = y-7+"px";
setTimeout('document.mapsfform1.newcrd.style.display = "block"',500);
}

function mousedownMapsf(e) {
 var e = e || window.event;
  var btnCode;
   btnCode = e.button;
if (btnCode==2) { 
var el = document.getElementById("m_map");
  mouse_state = 1; 
 x = posx(e);
 y = posy(e); 
document.mapsfform1.selarea.style.left=x+"px";
document.mapsfform1.selarea.style.top=y+"px";
 document.mapsfform1.selarea.style.width=1+"px";
document.mapsfform1.selarea.style.height=1+"px";
document.mapsfform1.selarea.style.display = "block";
}
}

function mousemoveMapsf(e) {
 if (mouse_state) { 
 var e = e || window.event;
 x1 = posx(e)-x-5;
 y1 = posy(e)-y-5;
 x1= x1<0 ? 0 : x1;
 y1= y1<0 ? 0 : y1;
document.mapsfform1.selarea.style.width=x1+"px"; 
document.mapsfform1.selarea.style.height=y1+"px"; 
 }
}

function mouseupMapsf(e) {
 var e = e || window.event;
  var btnCode;
   btnCode = e.button;
 
if ((btnCode==2)&&(mouse_state))
mouse_state = 0; 
document.mapsfform1.selarea.style.display = "none";
var form = document.mapsfform1;
	if  (x1>10 && y1>10) {
y=parseInt(y/(document.mapsfform1.scalemap.value/100));
x=parseInt(x/(document.mapsfform1.scalemap.value/100));
y1=parseInt(y1/(document.mapsfform1.scalemap.value/100));
x1=parseInt(x1/(document.mapsfform1.scalemap.value/100));
		document.mapsfform1.top_sel.value=y;
		document.mapsfform1.left_sel.value=x;
		document.mapsfform1.end_sel.value=y+y1;
		document.mapsfform1.right_sel.value=x+x1;
/*		getcoordMapsf(); */
		form.submit();
	}
}

function getcoordx(el)  {
   xc = el.offsetLeft;
  for (var parent = el.offsetParent; parent; parent = parent.offsetParent)
  {
    xc += parent.offsetLeft;
  }
return xc;
}
function getcoordy(el)  {
   yc = el.offsetTop;
  for (var parent = el.offsetParent; parent; parent = parent.offsetParent)
  {
    yc += parent.offsetTop;
  }
return yc;
}

function posx(ev) {
if(ev.offsetX || ev.offsetY) {
xev=ev.offsetX;
}else {
xev=ev.layerX;
} 
return xev;
}
function posy(ev) {
if(ev.offsetY) {
yev=ev.offsetY;
}else {
yev=ev.layerY;
} 
return yev;
}

function ShowHide(obj,  noopac, nOpac){
nOpacity = nOpac || 100;
noopac = noopac || 0;
SHelem = document.getElementById(obj);
	if (offopacity == 1 || noopac==1) {
	SHelem.style.display = SHelem.style.display=="block" ? "none" : "block";
SHelem.style.opacity=1;
SHelem.style.filter="alpha(opacity=100)";
	} else {
		if (SHelem.style.display=='block'){
		opac=nOpacity;	
		Hide();
		} else {
		opac=0;	
		Show();
		}
	}
}

function Hide(){
opac -= valopac;
SHelem.style.opacity=opac/100;
SHelem.style.filter="alpha(opacity="+opac+")";
t=setTimeout('Hide()',1);
if (opac <= 0){
SHelem.style.display='none';
clearTimeout(t);
}
}

function Show(){
opac += valopac;
SHelem.style.opacity=opac/100;
SHelem.style.filter="alpha(opacity="+opac+")";
SHelem.style.display='block';
t=setTimeout('Show()',1);
if (opac >= nOpacity){
clearTimeout(t);
}
}

function getBodyScrollTop()
{
  return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}

function getBodyScrollLeft()
{
  return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);
}

function getElemPosSize(elemId){
var elemt = document.getElementById(elemId);
var w = elemt.offsetWidth;
var h = elemt.offsetHeight;
var l = 0;
var t = 0;
while (elemt)    {
    l += elemt.offsetLeft;
    t += elemt.offsetTop;
    elemt = elemt.offsetParent;
    }
    return {"left":l, "top":t, "width": w, "height":h};
}

function coord_flag(n, noflag){
var obj = document.getElementById("obj"+n);
var flag = document.getElementById("flag");
flag.style.left =obj.style.left;
flag.style.top = obj.style.top;
var vt=parseInt(obj.style.top)-wheight/2;
var vl=parseInt(obj.style.left)-wwidth/2;
document.getElementById("my_map").scrollTop = vt;
document.getElementById("my_map").scrollLeft = vl;
if (noflag==0){
flag.style.display = "block";
} else {
obj.style.display = "block";
}
movesel(1);
}


try {
  window.addEventListener("load", init, false);
} catch(e) {
window.onload = getcoordMapsf; 
} 


