var zoomw=160;
var zoomh=120;
var defzoomamount=1.5;
var zoomstate = 0;

var zoomamountstep=1.2;
var zoomsizemin=1000;
var zoomsizemax=100000;
var zoomsizestep=1.2;
var zoomamountmin=1;
var zoomamountmax=6;
var zoomborder=1;
var zoomborderoricolor='#D1D2D4';
var zoomborderhotcolor='#ffeb00';
var OriginalImg;
var OriginalImgWid;
var OriginalImgHei;
var bigImgSrc;
var smallImgSrc;
var tooltipstyle='background-color:#ffffe1; border: 1px solid #000000; padding:2px; font-size: 70%; FONT-FAMILY: Arial,arial;';
var helpinfo = "Press 'LEFT' or '<' & 'RIGHT' or '>' to Resize Lens, Press 'UP' or '+' to Zoom in & 'DOWN' or '-' to Zoom out.";
var scrollNo;
var AllPrevImg;
var PrevWid;
var PrevHei;
var AllPrevSmall;
var AllPrevBig;

var zoomamount=defzoomamount; 
var objw;
var objh;
var zoomid=''; 
var zoomratio=zoomw/zoomh; 
var ieox=0; 
var ieoy=0; 
var ffox=0; 
var ffoy=0; 
var hidone=0; 
var overhotspot=0; 
var lastover=''; 
var zoombordercolor=zoomborderoricolor; 
if(navigator.userAgent.indexOf('Firefox/1.0') != -1)  {zoomborder=0;}/* Here it is */
var isopera=(navigator.userAgent.toLowerCase().indexOf('opera') != -1); 
if(isopera) { defzoomamount=2; zoomamountmax=3; tooltipstyle='display:none';} 
var hotspots;
var ua = navigator.userAgent;
var dom = (document.getElementById) ? true : false;
var ie4 = (document.all && !dom) ? true : false;
var ie5_5 = ((ua.indexOf("MSIE 5.5")>=0 || ua.indexOf("MSIE 6")>=0) && ua.indexOf("Opera")<0) ? true : false;
var ns4 = (document.layers && !dom) ? true : false;
var Bounds;
var displayZoom = false;

function tabcontent(innerHTML, parentId){
    var retstr = new String("");
    retstr += '<map name="imgmpMenu">';
    retstr += '<area href="javascript:void(0);" onclick="javascript:this.blur();return false;" style="cursor:default;" id="menuarea_'+ parentId +'" shape="polygon" coords="1, 168, 1, 40, 6, 32, 17, 27, 138, 29, 142, 24, 142, 3, 147, 0, 268, 0, 278, 7, 281, 20, 284, 28, 291, 30, 301, 29, 310, 32, 312, 41, 312, 166, 309, 172, 303, 176, 11, 176, 6, 173"></map>';
    /*if(ie5_5){
        retstr += '<table id="tbl_'+ parentId +'" cellpadding="0" cellspacing="0" border="0"><tr><td><div style="background-image:url(images/PopupHelp.gif);"><img usemap="#imgmpMenu" src="images/pixel_trans.gif" border="0" alt="" width="313" height="177"></div></td></tr></table>';
    }else{
        retstr += '<table id="tbl_'+ parentId +'" cellpadding="0" cellspacing="0" border="0"><tr><td><div style="background-image:url(images/PopupHelp.png);"><img usemap="#imgmpMenu" src="images/pixel_trans.gif" border="0" alt="" width="313" height="177"></div></td></tr></table>';
    } */   
    retstr += '<table id="tbl_'+ parentId +'" cellpadding="0" cellspacing="0" border="0"><tr><td><img usemap="#imgmpMenu" src="images/PopupHelp.png" border="0" alt="" width="313" height="177"></td></tr></table>';
    return retstr;
}

function menuDiv(compid){    
    var retcomp = document.getElementById("MenuDiv_" + compid);
    if(!retcomp){
        var comp = document.createElement("div");
        comp.id = "MenuDiv_" + compid;
        comp.style.position = "absolute";
        comp.style.left = "0px";
        comp.style.top = "0px";
        if(ie5_5){
            comp.style.filter = "alpha(opacity=60)";            
        }
        comp.style.cursor = "default";
        document.body.appendChild(comp);
        retcomp =  document.getElementById("MenuDiv_" + compid);
    }
    return retcomp;    
}

// The Following function gets the Left of an object
function getLeft(obj){
    return obj.offsetLeft + (obj.offsetParent ? getLeft(obj.offsetParent) : obj.x ? obj.x : 0);
}
// The Following function gets the Top of an object
function getTop(obj){
    return (obj.offsetParent ? obj.offsetTop + getTop(obj.offsetParent) : obj.y ? obj.y : 0);    
}
// The Following function gets the Right and width of an object
function getRight(obj){
	var leftpos = getLeft(obj);
	return {right:obj.offsetWidth + leftpos, width:obj.offsetWidth };
}
// The Following function gets the Bottom and height of an object
function getBottom(obj){
	var bottompos = getTop(obj);
	return {bottom:obj.offsetHeight + bottompos, height:obj.offsetHeight };	
}
var indent = "";
var str = "";
function setVisible(comp){
    if(comp.parentNode){
        if(comp.style.display){
            comp.oldDisplay = comp.style.display;
            if(comp.style.display.toUpperCase()=="NONE"){
                comp.style.display="block";                
            }            
        }
        if(comp.style.visibility){        
            comp.oldVisibility = comp.style.visibility;                        
            if(comp.style.visibility.toUpperCase()=="HIDDEN"){
                comp.style.visibility="visible";
                str += "\n" + indent + comp.tagName;
                indent += "-";
            }
        }
        setVisible(comp.parentNode);
    }else{        
        return;
    }
}
function resetVisible(comp){
    if(comp.parentNode){
        if(comp.oldDisplay){
            comp.style.display = comp.oldDisplay;
            comp.oldDisplay = null;
        }                
        if(comp.oldVisibility){
            comp.style.visibility = comp.oldVisibility;
            comp.oldVisibility = null;
        }
        resetVisible(comp.parentNode);
    }else{
        return;
    }
}
// The Following function gets the Bounds of an object
function getBounds(obj){
    setVisible(obj);
	var LeftPos = getLeft(obj);
	var TopPos = getTop(obj);
	var RightPos = getRight(obj).right;
	var BottomPos = getBottom(obj).bottom;
	var Width = getRight(obj).width;
	var Height = getBottom(obj).height;
	resetVisible(obj);
	return{left: LeftPos, top: TopPos, right: RightPos, bottom: BottomPos, width: Width, height: Height};
}

function tieTabWithMenu(compId, InnerHTML){
    var Div = menuDiv(compId);
    var tab = document.getElementById(compId);    
    if(Div && tab){
        Div.innerHTML = tabcontent(InnerHTML,Div.id);        
        Div.style.display = "none";
        Div.tab = tab;
        var menuArea = document.getElementById("menuarea_" + Div.id);
        menuArea.menu = Div;
        tab.menu = Div;
        tab.zIndex = 1000;
        tab.Text = InnerHTML;
        tab.style.cursor = "default";
        tab.onmouseover = function(){
            this.menu.style.display = "block";
            var tabBounds = getBounds(this);
            this.Bounds = tabBounds;
            var currleft = tabBounds.left - 141;
            var currtop = tabBounds.top - 2;
            this.menu.style.left = currleft + "px";
            this.menu.style.top = currtop + "px";            
        }
        tab.onmouseout = function(){
            this.menu.style.display = "none";
        }
        menuArea.onmousemove = function(){            
            this.menu.style.display = "block";
            var tabBounds = this.menu.tab.Bounds;
            var currleft = tabBounds.left - 141;
            var currtop = tabBounds.top - 2;
            this.menu.style.left = currleft + "px";
            this.menu.style.top = currtop + "px";
        }
        menuArea.onmouseout = function(){
            this.menu.style.display = "none";
        }
    }
}

// The Following Functions are used to handle Cookies
function _setCookie(CookieName, CookieValue, ExpiryDays, AccessPath, AccessDomain, IsSecured){    
	var today = new Date();
	today.setTime(today.getTime());
	
	if(ExpiryDays){
		ExpiryDays = ExpiryDays * 1000 * 60 * 60 * 24;
	}	
	var expirydate = new Date(today.getTime() + (ExpiryDays));	
    
	document.cookie = CookieName + "=" + escape(CookieValue) +
		((ExpiryDays) ? ";expires=" + expirydate.toGMTString() : "") + 
		((AccessPath) ? ";path=" + AccessPath : "") + 
		((AccessDomain) ? ";domain=" + AccessDomain : "") +
		((IsSecured) ? ";secure" : "");
}

function _getCookie(CookieName){    
	var AllCookies = document.cookie.split(";");
	var TempCookie = '';
	var CurrCookieName = '';
	var CurrCookieValue = '';
	var validCookie = false;
		
	for(i=0;i<AllCookies.length;i++){
		TempCookie = AllCookies[i].split('=');		
		CurrCookieName = TempCookie[0].replace(" ", "").toUpperCase();
		CookieName = CookieName.replace(" ","").toUpperCase();		
		if(CurrCookieName == CookieName){
			validCookie = true;
			if(TempCookie.length > 1){
				CurrCookieValue = unescape(TempCookie[1]);
			}
			return CurrCookieValue;
			break;
		}
		TempCookie = null;		
	}
	if(!validCookie){
		return null;
	}
}

function _deleteCookie(CookieName, AccessPath, AccessDomain){
    if(getCookie(name)){
        document.cookie = CookieName + "=" +
		((AccessPath) ? ";path=" + AccessPath : "") +
		((AccessDomain) ? ";domain=" + AccessDomain : "" ) +
		";expires=Thu, 01-Jan-1970 00:00:01 GMT";
	}
}

function setCookies(){
    _setCookie("PrevState",zoomstate,1);
}
var BigImage = "";
function initView(){
    zoomstate = _getCookie("PrevState");
    if(displayZoom){
        if(zoomstate=="1"){
            turnOn();
        }else{
            turnOff();
        }
    }
}

function turnOn(){
	zoomstate = 1;
	setCookies();
	var ZoomInf = document.getElementById("tblTurnOffMagnifyGlass");
	if(ZoomInf!=null){
		document.getElementById("tblTurnOffMagnifyGlass").style.display = "block";
	}
	var ZoomInf1 = document.getElementById("tblTurnOnMagnifyGlass");
	if(ZoomInf1!=null){
		document.getElementById("tblTurnOnMagnifyGlass").style.display = "none";
	}
}

function turnOff(){
	zoomstate = 0;
	setCookies();
	var ZoomInf = document.getElementById("tblTurnOffMagnifyGlass");
	if(ZoomInf!=null){
		document.getElementById("tblTurnOffMagnifyGlass").style.display = "none";
	}
	var ZoomInf1 = document.getElementById("tblTurnOnMagnifyGlass");
	if(ZoomInf1!=null){
		document.getElementById("tblTurnOnMagnifyGlass").style.display = "block";
	}
}

function displayZoomInfo(Big){
	var ZoomInf = document.getElementById("tblTurnOnMagnifyGlass");
	if(ZoomInf!=null){	    
		if(Big.replace(" ","")=="" || zoomstate==0){
			document.getElementById("tblTurnOffMagnifyGlass").style.display = "none";
			if(Big.replace(" ","")==""){
				document.getElementById("tblTurnOnMagnifyGlass").style.display = "none";
			}else{
			    displayZoom = displayZoom || true;
			}
			return;
		}else{
		    displayZoom = displayZoom || true;
		}
	}
}

function zoom_on_init(evt,Wid,Hei,Small,Big){	
	if(Big=="" || zoomstate==0){		
		return;
	}
	Wid = parseFloat(Wid);
	Hei = parseFloat(Hei);
	zoom_on(evt,Wid,Hei,Small,Big);	
}

function All_zoom_on(evt,smallImg,bigImg,ImgId){		
	if(bigImg=="" || bigImg==null){		
		return;
	}
	zoom_on(evt,732,450,smallImg,bigImg);	
}

function zoom_click() {
 if(overhotspot!=0) {
  todo=hotspots[overhotspot][4];
  if(todo.indexOf('http://') == 0) { document.location=todo}
  else {eval(todo);}
 }
 return false;
}

function zoom_hidone() {
 hidone=1;
 var ZoomCont = document.getElementById(zoomid+'_container');
 if(ZoomCont!=null){
	document.getElementById(zoomid+'_container').style.cursor='default'; 
 }//else{
	//window.defaultStatus = "There was an object error occured when try to find " + zoomid + "_container"
 //}
 //document.getElementById(zoomid+'_tooltip').style.display='none';
}

function zoom_set(evt) {
 var evt = evt?evt:window.event?window.event:null; if(!evt){ return false;}
 if(zoomid=='' || parseInt(document.getElementById(zoomid+'_container').style.width) == 0) {return true;}
 //< Or <-
 if(evt.keyCode==188 || evt.keyCode==37) {
	window.defaultStatus = "Resizing Magnifing glass";
	zoomw/=zoomsizestep;
	zoomh/=zoomsizestep;
	if(zoomw*zoomh<zoomsizemin) {
		zoomh=Math.sqrt(zoomsizemin/zoomratio);
		zoomw=zoomh*zoomratio;
	}
	//setCookies();
	zoom_init();
	zoom_move();
	return false;
}
 //> Or ->
 if(evt.keyCode==190 || evt.keyCode==39) {
	window.defaultStatus = "Resizing Magnifing glass";
  zoomw*=zoomsizestep; zoomh*=zoomsizestep;
  if(zoomw*zoomh>zoomsizemax) {zoomh=Math.sqrt(zoomsizemax/zoomratio); zoomw=zoomh*zoomratio;}
  if(zoomw>objw) {zoomw=objw; zoomh=objw/zoomratio;}
  else if(zoomh>objh) {zoomh=objh; zoomw=objh*zoomratio}
  //setCookies();
  zoom_init(); zoom_move(); return false;
 }
 //- Or UP
 if(evt.keyCode==189 || evt.keyCode==109 || evt.keyCode==40)  {
	window.defaultStatus = "Zooming Out";
	zoomamount/=zoomamountstep; 
	if(zoomamount<zoomamountmin) {
		zoomamount=zoomamountmin;
	}
	//setCookies();
	zoom_init(); 
	zoom_move(); 
	return false;
}
 //+ OR DOWN
 if(evt.keyCode==187 || evt.keyCode==107 || evt.keyCode==38) {
	window.defaultStatus = "Zooming In";
	zoomamount*=zoomamountstep; 
	if(zoomamount>zoomamountmax) {
		zoomamount=zoomamountmax;
	} 
	//setCookies();
	zoom_init(); 
	zoom_move(); 
	return false;
} 
 return false;
}

function zoom_init() {
 document.getElementById(zoomid+'_clip').style.width=objw*zoomamount+'px';
 document.getElementById(zoomid+'_clip').style.height=objh*zoomamount+'px';
 //eval("document.getElementById('"+zoomid+"_trigger').focus();");
}

function zoom_move(evt) {
 if(typeof(evt) == 'object') {
  var evt = evt?evt:window.event?window.event:null; if(!evt){ return;}
  if(evt.pageX) {
   xx=evt.pageX - ffox;
   yy=evt.pageY - ffoy;
  } else {
   if(typeof(document.getElementById(zoomid)+1) == 'number') {return true;} //mert az ie egy ocska kurva
   xx=evt.clientX - ieox;
   yy=evt.clientY - ieoy;
  }
 } else {
  xx=lastxx; yy=lastyy;
 }
 lastxx=xx; lastyy=yy;
 
 if(hidone == 1) {
  if(overhotspot == 0) {
   for(key in hotspots) {
    if(xx>=hotspots[key][0] && yy >= hotspots[key][1] && xx <= hotspots[key][2] && yy <= hotspots[key][3]) {
     overhotspot=key;
     document.getElementById(zoomid+'_container').style.cursor='pointer';
     if(!isopera) {
      //document.getElementById(zoomid+'_tooltip').style.display='block';
      //document.getElementById(zoomid+'_tooltip').innerHTML=key;
     }
     zoombordercolor=zoomborderhotcolor;
    }
   } 
  } else {
   os=0;
   for(key in hotspots) {
    if(xx>=hotspots[key][0] && yy >= hotspots[key][1] && xx <= hotspots[key][2] && yy <= hotspots[key][3]) { os=1;}
   }
   if(os == 0) {
    overhotspot=0;
    zoombordercolor=zoomborderoricolor;
    document.getElementById(zoomid+'_container').style.cursor='default';   
    //document.getElementById(zoomid+'_tooltip').style.display='none';
   }
  }
 }

 if(zoomborder>0) {
  zbl=zoomborder;
  zbt=zoomborder;
  zbl=(Math.abs(zoomw/2-xx)-Math.abs(zoomw/2-xx+zoomborder)+zoomborder)/2;
  zbt=(Math.abs(zoomh/2-yy)-Math.abs(zoomh/2-yy+zoomborder)+zoomborder)/2;
  zbr=(Math.abs((xx+zoomw/2+zbl)-objw-zoomborder)-Math.abs((xx+zoomw/2+zbl)-objw)+zoomborder)/2;
  zbb=(Math.abs((yy+zoomh/2+zbt)-objh-zoomborder)-Math.abs((yy+zoomh/2+zbt)-objh)+zoomborder)/2;

  document.getElementById(zoomid+'_clipborder').style.borderLeft=zbl+'px solid '+zoombordercolor;
  document.getElementById(zoomid+'_clipborder').style.borderTop=zbt+'px solid '+zoombordercolor; 
  document.getElementById(zoomid+'_clipborder').style.borderBottom=zbb+'px solid '+zoombordercolor; 
  document.getElementById(zoomid+'_clipborder').style.borderRight=zbr+'px solid '+zoombordercolor; 
 } else {
  zbt=zbr=zbb=zbl=0;
 }

 document.getElementById(zoomid+'_clip').style.margin=(((yy-zoomh/2 > 0)?(zoomh/2-yy*zoomamount):(yy*(1-zoomamount)))+zbt)+'px 0px 0px '+(((xx-zoomw/2 > 0)?(zoomw/2-xx*zoomamount):(xx*(1-zoomamount)))+zbl)+'px';
 document.getElementById(zoomid+'_container').style.margin=(((yy-zoomh/2 > 0)?(yy-zoomh/2):(0))-zbt)+'px 0px 0px '+(((xx-zoomw/2 > 0)?(xx-zoomw/2):(0))-zbl)+'px';
 

 document.getElementById(zoomid+'_padder').style.height=((Math.abs(yy)-Math.abs(yy-zoomh/2)+zoomh/2)/2+zoomh/2)+'px';
 document.getElementById(zoomid+'_padder').style.width=((Math.abs(xx)-Math.abs(xx-zoomw/2)+zoomw/2)/2+zoomw/2)+'px';
 w2=((xx+zoomw/2<objw)?((zoomw/2<xx)?(zoomw):(zoomw/2+xx)):(zoomw/2+objw-xx)); if(w2<0) {w2=0;} 
 document.getElementById(zoomid+'_container').style.width=(w2+zbl+zbr)+'px';

 h2=((yy+zoomh/2<objh)?((zbt+zoomh/2<yy)?(zoomh):(zoomh/2+yy)):(zoomh/2+objh-yy)); if(h2<0) {h2=0;} 
 document.getElementById(zoomid+'_container').style.height=(h2+zbt+zbb)+'px';
 return false;
}

function zoom_off() {
 if(zoomid != '') {
  document.getElementById(zoomid+'_container').style.width='0px';
  document.getElementById(zoomid+'_container').style.height='0px';
  document.getElementById(zoomid+'_container').style.cursor='default';
  //document.getElementById(zoomid+'_tooltip').style.display='none';
  
 }
 zoomid=''; /* Here it is */
 hotspots={};
}

function countoffset() {
 ieox=0;ieoy=0;
 for(zmi=0;zmi<50;zmi++) {
  zme='document.getElementById(zoomid)';
  for(zmj=1;zmj<=zmi;zmj++) {
   zme+='.offsetParent';
  }
  if(eval(zme)+1 == 1) {zmi=100} else {ieox+=eval(zme+'.offsetLeft'); ieoy+=eval(zme+'.offsetTop');}
 }
 ffox=ieox;
 ffoy=ieoy;
 if(document.documentElement && document.documentElement.scrollTop) {
  ieox-=document.documentElement.scrollLeft;
  ieoy-=document.documentElement.scrollTop;
 } else {
  ieox-=document.body.scrollLeft;
  ieoy-=document.body.scrollTop;
 }
}

function zoom_on(evt,ow,oh,lowres,highres) {
 var evt = evt?evt:window.event?window.event:null; if(!evt){ return;}
 thisid=lowres+highres+ow+oh;
 thisid='zoom_'+thisid.replace(/[^a-z0-9]/ig,'')
 if(zoomid==thisid) {return;}
 if(lastover == thisid) {zoomid=thisid; countoffset(); zoom_move(); return;}/* Here it is */
 if(typeof(highres) == typeof(nemistudom)) {highres=lowres;}
 zoomamount=defzoomamount;
 objw=ow;
 objh=oh;
 zoomid=thisid;/* Here it is */
 if(evt.pageX) {
  evt.target.parentNode.id=thisid;
  countoffset();
  lastxx=evt.pageX - ffox;
  lastyy=evt.pageY - ffoy;
 } else {
  evt.srcElement.parentNode.id=thisid;
  countoffset();
  lastxx=evt.clientX - ieox;
  lastyy=evt.clientY - ieoy; 
 }
 lastover=thisid;
 
 document.getElementById(thisid).style.width=ow+'px';
 document.getElementById(thisid).style.height=(oh+((isopera)?(5):(0)))+'px';
 document.getElementById(thisid).style.overflow='hidden';
 document.getElementById(thisid).innerHTML=
 '<textarea id="'+thisid+'_trigger"  style="font-size:1px;position:absolute;width:100px;height:'+((isopera)?('4px'):('0; filter:alpha(opacity=0);'))+';border:0;margin:0;padding:0;overflow:hidden;z-index:0;"/></textarea>'+
 '<div style="text-align:left;position:absolute; overflow:hidden; width:0; height:0; border:0;" id="'+thisid+'_container" onmousemove="zoom_move(event);" onmouseout="zoom_off()">'+
 '<div id="'+thisid+'_clipborder" style="position:absolute;overflow:hidden;border:'+zoomborder+'px solid '+zoombordercolor+';">'+
 '<div style="width:0;height:0;overflow:hidden;" id="'+thisid+'_padder"></div>'+
 '</div>'+
 '<img src="'+highres+'" alt="" id="'+thisid+'_clip" style="padding:0;margin:0;border:0;" onload="zoom_hidone();"/></div>'+
 /*'<div style="text-align:left;position:absolute; z-index:2;float:left; '+tooltipstyle+'" id="'+thisid+'_tooltip">Loading...</div>'+*/
 '<img src="'+lowres+'" id="'+thisid+'_pic" alt="" style="padding:0;margin:0;border:0;z-index:10;width:'+ow+'px; height: '+oh+'px"/>'
;
//document.getElementById(zoomid+'_tooltip').style.display="block";
 if(zoomw>objw) {zoomw=objw; zoomh=objw/zoomratio;}
 else if(zoomh>objh) {zoomh=objh; zoomw=objh*zoomratio}
 zoom_init();
 zoom_move('');
 document.getElementById(zoomid+'_container').style.cursor='wait'; hidone=0;
 if(isopera) {
  document.onkeypress=zoom_set;
  document.onkeyup=set_help;
 } else {
  if(document.all) {
   document.onkeydown=zoom_set;
   document.onkeyup=set_help;
  } else {
   window.captureEvents(Event.KEYDOWN);
   window.onkeydown = zoom_set;
   document.onkeyup=set_help;
  }
 }
 return false;
}

function set_help(){
	window.defaultStatus = helpinfo;	
}