var x,y;

var savedMouseDown;
var savedMouseUp;
var savedMouseDblClick;
var savedMouseClick;

function searchResultClick(docname, pgnum, searchString)
{
    if(docname == parent._viewerParams.docName)
    {
        parent.setSearchString(searchString);
        GoPage(pgnum);
        //parent.setSearchString("");
        search();
    }
    else
    {
        var url = "default.aspx?d=" + docname + "&pagenum=" + pgnum + "&s=" + searchString;
        parent.window.location.href = url;
    }
}

function initializeZoomPanEvents()
{
//    //save the ajax handlers for movable panels
//    savedMouseDown = document.onmousedown;
//    savedMouseUp = document.onmouseup;
//    savedMouseDblClick = document.ondblclick;
//    savedMouseClick = document.click;
//    
//    document.onmousedown=mouse_down;
//    document.onmouseup=mouse_up;
//    document.ondblclick=mouse_dblclk;
//    //document.onclick=mouse_click;

      var leftDiv = document.getElementById("_leftDiv");
      var rightDiv = document.getElementById("_rightDiv");
      
      leftDiv.onmousedown = mouse_down;
      rightDiv.onmousedown = mouse_down;
      leftDiv.onmouseup = mouse_up;
      rightDiv.onmouseup = mouse_up;
      leftDiv.ondblclick = mouse_dblclk;
      rightDiv.ondblclick = mouse_dblclk;
}

function uninitializeZoomPanEvents()
{
    document.onmousedown = savedMouseDown;
    document.onmouseup=savedMouseUp;
    document.ondblclick=savedMouseDblClick;
    //document.onclick=mouse_click;
}

function GoPage(pagenum)
{
    //alert(parent.basefrm.location.href);
    if(parent.basefrm.location.href.toLowerCase().match("main.aspx") != null)
        parent.frmToolbar.gotoPage(pagenum);
    else
        thumbLinkClick(pagenum);
}


function linkClick(page){
	parent.frmToolbar.gotoPage(page);
}

function mouse_drag(e){
	var leftclick;
	if (!e)  {
		e = window.event;
		leftclick = (e.button == 1);
	}	else {
		leftclick = (e.button == 0);
	}

	var leftButton = false;
	if (e.button) leftButton = (e.button >= 1);
 	else if (e.which) {
		leftButton = (e.which >= 1);
	} else {
		leftButton = false;
	}

	if (leftButton) {
		var newx = getX(e);
		var newy = getY(e);
		var diffx = (x-newx)/3;
		var diffy = (y-newy)/3;
		if ((Math.abs(diffx) > 10) || (Math.abs(diffy) > 10)) {
			scrollBy(diffx,diffy);
		}
	}
	
	return false;
	
}

function mouse_down(e){
	var event;
	var targ;
	if (!e)  e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
		
//	if (targ.nodeType == 3) // defeat Safari bug
//		targ = targ.parentNode;
		var leftButton = false;
		var rightButton = false;

	if (e.button) leftButton = (e.button >= 1);
	else if (e.which) {
		leftButton = (e.which >= 1);
	}
	else {
		leftButton = false;
	}
	
	if (e.button) rightButton = (e.button >= 2);
	else if (e.which) {
		rightButton = (e.which >= 3);
	}
	else {
		rightButton = false;
	}
	
	if (leftButton) {
		x = getX(e);
		y = getY(e);
		document.onmousemove = mouse_drag;
	}
	
	if (rightButton) {
		clickZoomHandler(e);
	}
	
	return false;	
}

function mouse_up() {
	document.onmousemove = null;
	return false;
}

function mouse_dblclk() {
	var e=arguments[0]||event;
	clickZoomHandler(e);
}

function clickZoomHandler(e){
    var w,h;
    w = parent.getWindowWidth(parent.basefrm);
    h = parent.getWindowHeight(parent.basefrm);
	var evt = e || window.event;
	if (e.pageX || e.pageY){
		var x=e.pageX + window.pageXOffset;
		var y=e.pageY + window.pageYOffset;
	} else if (e.clientX || e.clientY){
		var x=event.clientX + document.body.scrollLeft;
		var y=event.clientY + document.body.scrollTop;
	}

    var res = parent._viewerParams.resolutions;
    var oldZoom = parent._viewerParams.zoom;
    var maxZoom = res[res.length-2];
    parent.frmToolbar.toggleZoom();
	if(parent._viewerParams.zoom == maxZoom){		
		scrollTo((x * maxZoom/oldZoom) - (w/2), (y * maxZoom/oldZoom) - (h/2));
	}
	
}

function scrollTopLeft()
{
    window.scrollTo(0, 0);
}


