// JavaScript Document

// Housekeeping...
var isMsie = (document.all && navigator.userAgent.indexOf('msie')!=-1)? true: false;

var arItem = new Array ("subMap", "map", "Magnifier");
var arXmin = new Array ( -6890, 0	, 0);
var arYmin = new Array 	 ( 0	, 0	, 1);
var arXmax = new Array   ( 0	, 0	, 610);
var arYmax = new Array   ( 0	, 0	, 110);
var arXstart = new Array ( 0	, 0	, 0);
var arYstart = new Array ( 0	, 0	, 120);

var picRatio = 11.3	; 
// rough move of 7500/610


var movingPicture = 0; // index of item for moving

// Define the function
if  (document.getElementById){

(function(){
		//Stop Opera selecting anything whilst dragging.
		if (window.opera){ document.write("<input type='hidden' id='Q' value=' '>"); }

		var n = 500; var dragok = false; var y,x,dx,dy, dmx, dmy, d; var vPic, objPic; var vPicAbs = 0;

		function move(e){
			if (!e) e = window.event;
			if (dragok){ 
					var deltaX =  e.clientX - x ; 
					var deltaX1 =  e.clientX - x ; 
			}

			// restrict based on location of ...
			if ( (dmx + deltaX1) < arXmin[2] ) {deltaX = (arXmin[2]/picRatio) + dx	; deltaX = 0; dx = 1; dmx = 0; deltaX1 = 0;}
			else if ( (dmx + deltaX1 ) >= arXmax[2] ) {deltaX = (dx - arXmin[0])/picRatio; deltaX1 = document.getElementById('marker').style.left-dmx;}

			document.getElementById('subMap').style.left = dx - (deltaX * picRatio) + "px";
			document.getElementById('marker').style.left = dmx + deltaX1 + "px";

		  	return false;
			}

	function down(e) {

		// Define event and object
		if (!e) e = window.event;
		var temp = (typeof e.target != "undefined")?e.target:e.srcElement;
		if (temp.tagName != "HTML"|"BODY" && temp.className != "dragclass" && temp.className != "magnifyclass"){
			temp = (typeof temp.parentNode != "undefined")?temp.parentNode:temp.parentElement;
	 		}

		if (temp.className == "dragclass" || temp.className == "magnifyclass" ){

			if (window.opera){ document.getElementById("Q").focus(); }

			objPic = document.getElementById(arItem[movingPicture]);
			mObjPic = document.getElementById('subMap');

			dragok = true;
			temp.style.zIndex = n++;
			d = temp;
			
			dx = (mObjPic.style.left == "") ? arXstart[0] : parseInt(mObjPic.style.left);
			dmx =  parseInt(document.getElementById("marker").style.left);

			x = e.clientX;
		 	document.onmousemove = move;
	 		return false;
 		}
	}

	function up(){
		dragok = false; vPic = false;
		document.onmousemove = null;
	}

	document.onmousedown = down;
	document.onmouseup = up;
})(); }

// ***************************************************************************

function getUrlVars()
{
	var vars = [], hash;
	var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
	for(var i = 0; i < hashes.length; i++)
	{ hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1];}
	return vars;
}

if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt /*, from*/)
  {
    var len = this.length;

    var from = Number(arguments[1]) || 0;
    from = (from < 0) ? Math.ceil(from) : Math.floor(from);
    if (from < 0) from += len;

    for (; from < len; from++)
    { if (from in this && this[from] === elt) return from; }
    return -1;
  };
}


