<!-- ZOOOM Stuff -->
// Copyright 2009 MindLink Software GmbH. All Rights Reserved.
//
// ////////////////////////////////////////////////////////////////
// 
//
var ZOOM_JS_INCLUDED;

if (!ZOOM_JS_INCLUDED) 
 {
  ZOOM_JS_INCLUDED = true;
  
   var aparent=document.getElementById("zoomscript");
   if (!aparent) alert("zoom script id not found");
      
   var zoomScriptSrc=aparent.src; 
   zoomScriptSrc=zoomScriptSrc.substr(0,zoomScriptSrc.length-16);   
   
  var azooms=new Array();
   
function MLZoomImage()
{
	this.n = navigator.userAgent.toLowerCase();
}

// Image Info called from loaded server script

        function MLZoomResult( id , sinfo) 
        {
          zoom=azooms[id];
          sinfo='info&image='+zoom.image+'&url='+zoom.url+'&'+sinfo;
		  javacall(id,sinfo);
        }

        var urlsToLoad = [];

        function MLprocessRequests()
        { 
          for( var u in urlsToLoad )
          {         
            var zoom=urlsToLoad[ u ]; 
            javacall(zoom.id,zoom.showCMD); 
            
            //create script tag
            var sObj = document.createElement( 'script' );
            sObj.src = zoom.infoURL;
            document.body.appendChild( sObj );
          }
          
          urlsToLoad = [];
        }

        function MLAppendLoad( zoom )
        {
          urlsToLoad.push( zoom );
        }
        
        
                
  // call GWT APP
      function javacall(id,sin)
 		{   
		  var s=window.zoomCMD(id,sin);
		  
		}     

   

// write dynamic Meta for GWT
// embed gwt script
   function MLZoomGWTMeta()
   { 
   	//create Meta tag
     //var headobj =document.body.previousSibling.nodeName; no need append to body
	 var elMeta = document.createElement( 'meta' );
	 var attName=document.createAttribute('name');
	 attName.nodeValue='gwt:module';
	 elMeta.setAttributeNode(attName);
	 var attContent=document.createAttribute('content');
	 var s=zoomScriptSrc;
	 if (s!='') s=s+"=";
	 attContent.nodeValue=s+'com.mindlink.zoomimage.Application'; 
	
	 elMeta.setAttributeNode(attContent); 
     document.body.appendChild( elMeta );
      
      
      // embed GWT script
      //alert("embed gwt");
      var sObj = document.createElement( 'script' );
      sObj.src = zoomScriptSrc+"gwt.js";
      document.body.appendChild( sObj );
      
      
    }   
   
   
 // User call to insert ZoomImage
  function loadZoom(cnf)
       { 
       
       var id=cnf['id'];
       var url=cnf['url'];
       var image=cnf['image'];
       
       var s="";
       for (var key in cnf)
         { ;
           s=s+"&"+key+"="+cnf[key];
         }
        
        var aparent=document.getElementById(id);
        if (!aparent) 
          {
           alert("zoom slot id '"+id+ "' not found");
           return;
          } 
        aparent.onselectstart=function() { return false; };// IE stop selecting
       
        var zoom = new MLZoomImage();
        zoom.id=id;
        zoom.image=image;
        zoom.url=url;
        azooms[id]=zoom;
        zoom.showCMD='show_'+s;
            
        if (window.zoomCMD) javacall(id,'show_'+s);
        var infoURL=url+'?action=imageinfo&jsid='+id+'&imagename='+image;
        
        zoom.infoURL=infoURL;
        
        MLAppendLoad( zoom );
		
		if (window.zoomCMD)
		{ //page is loaded start loading immediately
		  MLprocessRequests();
		}
       }
   
  //User call to change mode
  function zoomSetMode(id,mode)
{
  javacall(id,mode);
}   

// must be called before gwt.js
  MLZoomGWTMeta();

} // ZOOM_JS_INCLUDED
 else
 { //alert('ZOOM_JS_INCLUDED');
 }
 
//  end zoom stuff-->


