// Globale variabler
var rbStartX;
var rbStartY;
var rubberBand = null;
//var mapIconOffX = -3;
//var mapIconOffY = -3;

				
function mapMouseDown(evt) {
	rbStartX = getMapX(evt);
	rbStartY = getMapY(evt);					
	rubberBand = getLayer('rubberBand');
	rubberBand.width = 0;
	rubberBand.height = 0;
	rubberBand.left = rbStartX;
	rubberBand.top  = rbStartY;
	rubberBand.visibility = 'visible';
	return false;
}

function mapMouseMove(evt) {
	//alert('mapMouseMove');
	var mouseX = getMapX(evt);
	var mouseY = getMapY(evt);	

	if (rubberBand == null) {
		mapCheckMouseOver(mouseX, mouseY);	
		return false;
	}	
		
	//if (mouseX > 400) 
	//	window.status = 'lik 500';
			
	if ((isNaN(mouseX)) || (mouseX >= 500) || (isNaN(mouseY)) || (mouseY >= 400)) {
		mapMouseUp(evt);
		return;
	}

	
	//window.status = 'x :: ' + mouseX;
	
	var minX = (rbStartX <= mouseX) ? rbStartX : mouseX;
	var maxX = (rbStartX >= mouseX) ? rbStartX : mouseX;
	var minY = (rbStartY <= mouseY) ? rbStartY : mouseY;
	var maxY = (rbStartY >= mouseY) ? rbStartY : mouseY;
	
	rubberBand.left = minX;
	rubberBand.top  = minY;
	
	var newW = maxX - minX;
	var newH = maxY - minY;
	
	rubberBand.width = newW;
	rubberBand.height = newH;
}

function mapMouseUp(evt) {
	if (rubberBand == null) return;
	rubberBand.visibility = 'hidden';
	
	//converts to map pixels
	var minX = parseInt(rubberBand.left);					
	var maxX = minX + parseInt(rubberBand.width);
	var minY = parseInt(rubberBand.top);
	var maxY = minY + parseInt(rubberBand.height);
								
	//checks if it is a point or rectangle
	if (((maxX - minX) > 10) && ((maxY - minY) > 10)) {
		document.frmMain.pixels.value = minX+'@'+minY+'@'+maxX+'@'+maxY;
		// drag (not click) needs explicit form post
		showLoading();	
		document.frmMain.submit();
	} else {
		document.frmMain.pixels.value = minX+'@'+minY;	
	}
	
	rubberBand = null;
	//frmMain.submit();
	//return false;
}

function getLayer(name) {
	var theObj = document.getElementById(name);
	return theObj.style;
}

function getMapX(e) {
	if (e.offsetX) 
		return e.offsetX + 1;
	else
		return e.pageX - findObjX('ibtnMapImage');
}

function getMapY(e) {
	if (e.offsetY) 
		return e.offsetY + 1;
	else
		return e.pageY - findObjY('ibtnMapImage');
}

function findObjX(name) {
	var obj = document.getElementById(name);
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findObjY(name) {
	var obj = document.getElementById(name);
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

// Mouseover

	var currentRowBg;
	
	function activateObject(objid)
	{
		if(typeof(arrIDs) == 'undefined')
			return false;
		activateObjectIndex(getArrayPos(objid));
	}
	
	function activateObjectIndex(i) {
		if(typeof(jsStorePixels) == 'undefined')
			return false;
		//alert('activateObjectIndex');
		var x = parseInt(jsStorePixels[i].split('|')[0]);
		var y = parseInt(jsStorePixels[i].split('|')[1]);
		//var x2 = parseInt(jsStorePixels[i].split('|')[2]);
		//var y2 = parseInt(jsStorePixels[i].split('|')[3]);
		var typ = jsStorePixels[i].split('|')[4];
		var srctext = jsStorePixels[i].split('|')[5];
		var alttext = jsStorePixels[i].split('|')[6];
		var href = jsStorePixels[i].split('|')[7];
		var activeCompanySpan = GetElement('mapActivePoint');
		var activeCompanyAnchor = GetElement('anchorActivePoint');
		var activeCompanyStyle = activeCompanySpan.style;
		var activeCompanyImg = GetElement('imgActivePoint');
		// updates the right text							
		showDetails(i, typ);	
		
		// updates icon on map		
		activeCompanyStyle.left = x; // + mapIconOffX;
		activeCompanyStyle.top  = y; // + mapIconOffY;
		activeCompanyImg.src = srctext;
		activeCompanyImg.alt = alttext;
		if(href == '') href = 'javascript:void(0)';
		activeCompanyAnchor.href = "http://" + href;
		//activeCompanyAnchor.Target="_new";
		
		activeCompanyStyle.visibility = 'visible';	
	}
	
	function getArrayPos(objid) {
		for (var i=0; i <= arrIDs.length; i++) {
			if (arrIDs[i] == objid) {
				return i;
			}
		}
	}
	
	function mapCheckMouseOver(mouseX, mouseY) {
		//alert('mapCheckMouseOver');
		if(typeof(disablePoiHover) != 'undefined')
			if(disablePoiHover == true)
				return false;
		//alert(typeof(jsStorePixels));
		if(typeof(jsStorePixels) == 'undefined')
			return false;
				
		//GetElement('contentMap:imgMap').alt = mouseX+','+mouseY;
					
		for (var i=jsStorePixels.length-1;i >= 0;i--) {
			var x = parseInt(jsStorePixels[i].split('|')[0]);
			var y = parseInt(jsStorePixels[i].split('|')[1]);
			var x2 = parseInt(jsStorePixels[i].split('|')[2]);
			var y2 = parseInt(jsStorePixels[i].split('|')[3]);
			if (mouseX >= x && mouseX < x2 && mouseY >= y && mouseY < y2) {
				activateObjectIndex(i);
				return;
			}
		}		
	}

	function mapobjOut(img) {
		//img.src = img.src.replace('_sel.gif', '.gif');
	} 

	function listrowOver(row, i, typ) {
		showDetails(i, typ);
		currentRowBg = row.style.backgroundColor;
		row.style.backgroundColor = 'white';
	} 

	function listrowOut(row) {
		row.style.backgroundColor = currentRowBg;	
	} 
	
	function showDetails(i, typ) {
		var strHTML;
		var strLocalDetails = '';
		var strExpandedTimes = '';
		
		if (typ.indexOf('kasse') > 0) {
			var frister = arrOpen[i];
			var name = arrNames[i];
			if (name == '') 
				name = '<br/>';
				
			strHTML =  '<div class=detailsName align=middle>' + name + '</div>';
			strHTML +=  typ;
			strHTML += '<div class=detailsAddress align=middle>' + arrAddresses[i] + '</div>';
			strHTML += 'Innleveringsfrister:<br><div class=detailsOpen align=middle>' + frister + '</div>';

			// utvidete frister (lenke)
			strExpandedTimes = '<a class=detailsLate href=javascript:showExtendedOpening(' + i + ')>Innleveringspostkasser med senere frister enn denne</a>';
			
			// lokalfrist (tekst nederst)
			if (arrLocalDetails[i] != '') {
				strLocalDetails = '*' + arrLocalDetails[i];
				typ = 'gulkasse';
			}			
			else if (frister.indexOf('*') > 0) {
				// Use default local details:
				strLocalDetails = '*Lokalomr&aring;de: Kun noen postnummer';
				typ = 'gulkasse';
			}			

		} else {
			strHTML =  '<div class=detailsName align=middle>' + arrNames[i] + '</div>';
			// adds a <br> to compensate for names with only one line
			if (arrNames[i].indexOf('<br>') <= 0)
				strHTML +=  '<br>';
			//strHTML +=  typ;
			strHTML += '<div class=detailsAddress align=middle>' + arrAddresses[i] + '</div>';

            //modified by sandeep on 12th oct 07
			strHTML += '<div class=detailsCash align=middle> ';
			var fr = arrFinansRaadgiver[i];
			if (fr != '') {
		//alert(fr);
				strHTML += '<a target="_blank" href="http://'  + arrFinansRaadgiver[i] + '">Hjemmeside</a>';
				if (arrCash[i] != '') strHTML += '';
			}
			strHTML += '</div>';
			/*
			strHTML += '&Aring;pningstider:<br><div class=detailsOpen align=left>' + arrOpen[i] + '</div>';
			if (arrBoxOpen[i] != '')
				strHTML += '&Aring;pningstider boksanlegg:<br><div class=detailsOpen align=left>' + arrBoxOpen[i] + '</div>';
			strHTML += '<div class=detailsDeadlines align=left>';
			strHTML += arrDeadline[i];
			strHTML += '</div>';
			*/
		}
		//modified by sandeep on 12th oct 07
		//strHTML += '<div class=detailsMessage align=left>' + arrMessage[i] + '</div>';
		
		
		//modified by sandeep on 28th 07 for test purpose
		//GetElement('developedBy').innerHTML = strHTML;
			
		// Sets the details html
		GetElement('detailsContent').innerHTML = strHTML;
		//GetElement('detailsOpenLocal').innerHTML = strLocalDetails;
		//GetElement('detailsLate').innerHTML = strExpandedTimes;
		
		// Sets the buttom picture
		showDetailsImage(typ);		
		
		//Always show the "details" pane
		expandItem('detailsItem');
	}
	
	function expandItem(itemName)
	{
		if (window.navbarRight) {
			var item = navbarRight.FindItemById(itemName);
			item.Expand();
			item.SaveState();
		}
	}
	
	function showDetailsImage(typ) {
		// Creates the right image url
		var imgUrl = 'images/';
		if (typ == 'Postkontor')
			imgUrl += 'detailsPost.jpg';
		else if (typ == 'Post i Butikk')
			imgUrl += 'detailsButikk.jpg';
		else if (typ == 'Bedriftssenter')
			imgUrl += 'detailsBedrift.jpg';
		else if (typ == 'gulkasse')
			imgUrl += 'detailsKasse.jpg';
		else if (typ.indexOf('kasse') > 0)
			imgUrl += 'detailsRodkasse.jpg';
		// Sets the image url	
		
		//commented by sandeep 28th 07 for testing
		//GetElement('detailsImage').src = imgUrl;
	}

	function getInfoImage(typ) {
		if (typ == 'Post i Butikk') 
			return '<div class=detailsImageButikk></div>';
		else
			return '<div class=detailsImagePost></div>';
	}
	
	function GetElement(eName) {
		if (document.all)
			return document.all[eName]; 
		else
			return document.getElementById(eName); 
    }

