function wgcms_imageproto( id, pos, thumb, type, detail, lightbox, inlightbox, popup, desc, highresdl, previewdl, selectable, inselection, inbasket) {
  id=String(id);
  pos=parseInt(pos);
  type=String(type);
  desc=String(desc);

  var selectLink='';

  var tn='';
   if (type.substr(0,5)=='cart_') {
     type=type.substr(5);
     tn="cart";
   }

  if (type=="cart") tn="cart";

  if (selectable) {
	var version='';
	if (inselection) {
		version='_checked';
 	}
	selectLink='<a class="btn_select" id="wgcms_'+tn+'select_link_'+id+'" href="javascript:void(0)" '+
		'style="cursor: pointer;" onmouseup="if (wgcms_is_dragging==2) return; xajax_toggleSelection(\''+id+'\',\''+tn+'\')"';
	if (inselection) {
		selectLink+=' isselected="true"';
	}

	selectLink += '><img src="http://www.picturedesk.com/components/com_webgatecms/images/wgcms_select'+version+'.gif" border="0"/></a>';

  }

  
  var detailCode='void(0);';
  var detailLink='';
  if (detail) {
    detailCode='if (wgcms_is_dragging==2) return; window.open(\'http://www.picturedesk.com/components/com_webgatecms/detail.php?id='+id+'&pos='+pos+'&type='+type+'\',\'webgatecms_detail\',\'left=25,top=25,width=725,height=520,resizable=yes,status=0,menubar=no,location=no,scrollbars=no\')';
    detailLink='<a class="btn_detail" href="JavaScript:void(0)" target="wgcms_detail" style="cursor: pointer;" onmouseup="'+detailCode+'"><img src="http://www.picturedesk.com/components/com_webgatecms/images/wgcms_detail.gif" border="0"/></a>';
  }

  var lightboxLink='';
  if (lightbox && tn!='cart') {
    var rem='';
    if (inlightbox) rem='remove';
    lightboxLink='<a class="btn_lightbox" id="wgcms_'+tn+'lightbox_link_'+id+'" href="JavaScript:void(0)" onmouseup="if (wgcms_is_dragging==2) return; xajax_toggleLightbox(\''+id+'\',\''+type+'\')"';
     lightboxLink+=' onmouseout="lblink_thumb_out(\''+tn+'\',\''+id+'\')" onmouseover="lblink_thumb_over(\''+tn+'\',\''+id+'\')"'
     lightboxLink+=
         '><img id="wgcms_'+tn+'lightbox_link_img_'+id+'" src="http://www.picturedesk.com/components/com_webgatecms/images/wgcms_lightbox'+rem+'.gif" border="0" hspace="1"/></a>';
  }
  if (tn=='cart') {
    var rem='remove';
    lightboxLink='<a class="btn_lightbox" id="wgcms_'+tn+'lightbox_link_'+id+'" href="JavaScript:void(0)" onmouseup="if (wgcms_is_dragging==2) return; xajax_toggleLightbox(\''+id+'\',\'cart\')"';
     lightboxLink+=' onmouseout="lblink_thumb_out(\''+tn+'\',\''+id+'\')" onmouseover="lblink_thumb_over(\''+tn+'\',\''+id+'\')"'
     lightboxLink+=
         '><img id="wgcms_'+tn+'lightbox_link_img_'+id+'" src="http://www.picturedesk.com/components/com_webgatecms/images/wgcms_lightbox'+rem+'.gif" border="0" hspace="1"/></a>';
  }

  var basketLink='';
  if (lightbox) {
    var rem='';
    if (inbasket) rem='remove';
    basketLink='<a class="btn_basket" id="wgcms_'+tn+'basket_link_'+id+'" href="JavaScript:void(0)" onmouseup="if (wgcms_is_dragging==2) return; xajax_toggleBasket(\''+id+'\',\''+type+'\')"';
     basketLink+=' onmouseout="basketlink_thumb_out(\''+tn+'\',\''+id+'\')" onmouseover="basketlink_thumb_over(\''+tn+'\',\''+id+'\')"'
     basketLink+=
         '><img id="wgcms_'+tn+'basket_link_img_'+id+'" src="http://www.picturedesk.com/components/com_webgatecms/images/wgcms_basket'+rem+'.gif" border="0" hspace="1"/></a>';
  }

  var royaltyLink='<a class="btn_royalty" href="JavaScript:void(0)"><img id="wgcms_royalty_icon_'+id+'" style="visibility:hidden;" src="http://www.picturedesk.com/components/com_webgatecms/images/wgcms_rm.gif" hspace="2" border="0"/></a>';

  var highresLink='';
  if (highresdl) {
    var hidlCode="xajax_imageDownload('"+id+"','highres');";
    highresLink='<a class="btn_dl_highres" style="cursor: pointer;" href="JavaScript:void(0)" onmouseup="'+hidlCode+'"><img src="http://www.picturedesk.com/components/com_webgatecms/images/wgcms_dl_highres.gif" border="0" hspace="2"/></a>';
  }

  var previewLink='';
  if (previewdl) {
    var prdlCode="xajax_imageDownload('"+id+"','preview');";
    previewLink='<a class="btn_dl_preview" style="cursor: pointer;" href="JavaScript:void(0)" onmouseup="'+prdlCode+'"><img src="http://www.picturedesk.com/components/com_webgatecms/images/wgcms_dl_preview.gif" border="0" hspace="2" vspace="1"/></a>';
  }

  var popupinfo='';
  if (popup) {
    popupinfo='if (link.wgpopup) { return image_over(link.wgpopup); } else { return xajax_getdesc(\''+id+'\',\''+type+'\'); }';
  }
  var description='';
  if (desc!=null && desc.length>0) {
    description='<span class="description" id="wgcms_'+type+'image_description_'+id+'"'
    +' onmousedown="if (event) { if (event.stopPropagation) {event.stopPropagation();} else {event.cancelBubble=true;} }">'
    +desc+'</span>';
    wgcmsDescQueue.push(new Array(id,type));
    wgcmsStartQueue();
  }
	
		var printImage='<a class="btn_print" style="cursor: pointer;" href="JavaScript:void(0)" onmouseout="lb_thumb_out(\'print\',\''+id+'\')" onmouseover="lb_thumb_over(\'print\',\''+id+'\')" title="Bild drucken"><img src="http://www.picturedesk.com/templates/confessmedia/images/lb_ico_print.gif" id="ico_print_'+id+'" border="0" vspace="2"/></a>';
	var downloadImage='<a class="btn_download" style="cursor: pointer;" href="JavaScript:void(0)" onmouseout="lb_thumb_out(\'download\',\''+id+'\')" onmouseover="lb_thumb_over(\'download\',\''+id+'\')" title="Bild downloaden"><img src="http://www.picturedesk.com/templates/confessmedia/images/lb_ico_download.gif" id="ico_download_'+id+'" border="0" vspace="2"/></a>';
	var basketImage='<a class="btn_basket" style="cursor: pointer;" href="JavaScript:void(0)" onmouseout="lb_thumb_out(\'basket\',\''+id+'\')" onmouseover="lb_thumb_over(\'basket\',\''+id+'\')" title="Bild in Warenkorb"><img src="http://www.picturedesk.com/templates/confessmedia/images/lb_ico_basket.gif" id="ico_basket_'+id+'" border="0" vspace="3" /></a>';
	var mailImage='<a class="btn_mail" style="cursor: pointer;" href="JavaScript:void(0)" onmouseout="lb_thumb_out(\'mail\',\''+id+'\')" onmouseover="lb_thumb_over(\'mail\',\''+id+'\')" title="Bild per Mail versenden" onclick="window.scroll(0,0);wgcms_mailCart(\''+id+'\'); return false;" /><img src="http://www.picturedesk.com/templates/confessmedia/images/lb_ico_mail.gif" id="ico_mail_'+id+'" border="0" vspace="3" /></a><br>';

	
	
	
	if (type=='cart') {

	return '<div class="wgcms_'+type+'image_container" id="wgcms_'+type+'image_container_'+pos+'">'+
        	'<div id="wgcms_'+type+'image_div_'+id+'" class="wgcms_'+type+'image">'+
		'<span style="display: block;margin-left:3px;" onmouseover="thumb_over(\'wgcms_'+type+'image_div_'+id+'\')" onmouseout="thumb_out(\'wgcms_'+type+'image_div_'+id+'\')">'+
               '<a class="image" id="wgcms_'+type+'image_link_'+id+'" target="wgcms_detail" '+
	       'onmouseover="if (wgcms_is_dragging) return; var link=document.getElementById(\'wgcms_'+type+'image_link_'+id+'\'); if (link) { link.wgisover=1;'+popupinfo+' }" '+
               'onmouseout="document.getElementById(\'wgcms_'+type+'image_link_'+id+'\').wgisover=0; return image_out();" onmouseup="'+detailCode+'">'+
		'<span style="background-image:url(\''+thumb+'\');"></span>'+
	       '</a>'+
		description+
             '<span class="buttons">'+selectLink+royaltyLink+printImage+downloadImage+basketLink+mailImage+lightboxLink+highresLink+previewLink+'</span>'+
           '</span>'+
         '</div></div>';
	} else {
	  var idtype=type;
	  if (tn=='cart') { idtype=tn; }
	  
	return '<div class="wgcms_'+type+'image_container" id="wgcms_'+idtype+'image_container_'+pos+'">'+
           '<div id="wgcms_'+idtype+'image_div_'+id+'" class="wgcms_'+type+'image" onmouseover="thumb_over(\'wgcms_'+idtype+'image_div_'+id+'\')" onmouseout="thumb_out(\'wgcms_'+idtype+'image_div_'+id+'\')">'+
               '<a class="image" id="wgcms_'+idtype+'image_link_'+id+'" target="wgcms_detail" '+
	       'onmouseover="if (wgcms_is_dragging) return; var link=document.getElementById(\'wgcms_'+idtype+'image_link_'+id+'\'); if (link) { link.wgisover=1;'+popupinfo+' }" '+
               'onmouseout="document.getElementById(\'wgcms_'+idtype+'image_link_'+id+'\').wgisover=0; return image_out();" onmouseup="'+detailCode+'">'+
		'<span style="background-image:url(\''+thumb+'\');"></span>'+
	       '</a>'+
             description+
             '<span class="buttons">'+
		selectLink+lightboxLink+basketLink+highresLink+previewLink+royaltyLink+'</span>'+
           '</div>'+
         '</div>';
	}
	
  
}


// MouseOver für Icons im ImageProto
function lblink_thumb_over(tn,id) {
  var img=document.getElementById('wgcms_'+tn+'lightbox_link_img_'+id);
  if (!img) return;
  var src=img.src;
  if (!src.match(/_over\.gif$/)) {
    src=src.replace(/\.gif$/,'_over.gif');
  }
  img.src=src;
}

function lblink_thumb_out(tn,id) {
  var img=document.getElementById('wgcms_'+tn+'lightbox_link_img_'+id);
  if (!img) return;
  var src=img.src;
  if (src.match(/_over\.gif$/)) {
    src=src.replace(/_over\.gif$/,'.gif');
  }
  img.src=src;

}

// MouseOver für Icons im ImageProto
function basketlink_thumb_over(tn,id) {
  var img=document.getElementById('wgcms_'+tn+'basket_link_img_'+id);
  if (!img) return;
  var src=img.src;
  if (!src.match(/_over\.gif$/)) {
    src=src.replace(/\.gif$/,'_over.gif');
  }
  img.src=src;
}

function basketlink_thumb_out(tn,id) {
  var img=document.getElementById('wgcms_'+tn+'basket_link_img_'+id);
  if (!img) return;
  var src=img.src;
  if (src.match(/_over\.gif$/)) {
    src=src.replace(/_over\.gif$/,'.gif');
  }
  img.src=src;
}

//Overlib Config
var ol_imagepath='http://www.picturedesk.com/components/com_webgatecms/overlib/images/';
var ol_fgcolor="";
var ol_bgcolor="";
var ol_textcolor="#000000";
var ol_capcolor="#FFFFFF";
var ol_closecolor="#9999FF";
var ol_textfont="Verdana,Arial,Helvetica";
var ol_captionfont="Verdana,Arial,Helvetica";
var ol_closefont="Verdana,Arial,Helvetica";
var ol_textsize="1";
var ol_captionsize="1";
var ol_closesize="1";
var ol_width="";
var ol_border="1";
var ol_cellpad=2;
var ol_offsetx=10;
var ol_offsety=-200;
var ol_text="Default Text";
var ol_cap="";
var ol_sticky=0;
var ol_background="";
var ol_close="Close";
var ol_status="";
var ol_autostatus=0;
var ol_height=-1;
var ol_snapx=0;
var ol_snapy=0;
var ol_fixx=-1;
var ol_fixy=-1;
var ol_relx=null;
var ol_rely=null;
var ol_fgbackground="";
var ol_bgbackground="";
var ol_padxl=1;
var ol_padxr=1;
var ol_padyt=1;
var ol_padyb=1;
var ol_fullhtml=0;
var ol_aboveheight=0;
var ol_capicon="";
var ol_frame=self;
var ol_timeout=0;
var ol_function=null;
var ol_delay=0;
var ol_hauto=0;
var ol_vauto=0;
var ol_closeclick=0;
var ol_wrap=0;
var ol_followmouse=1;
var ol_mouseoff=0;
var ol_closetitle='Close';
var ol_compatmode=0;
var ol_fgclass="overlibfgclass";
var ol_bgclass="overlibbgclass";
var ol_textfontclass="";
var ol_captionfontclass="";
var ol_closefontclass="";
document.write('<'+'script src="http://www.picturedesk.com/components/com_webgatecms/overlib/overlib_mini.js" type="text/javascript"'+'><'+'/script'+'>');


function addEvent( obj, type, fn )
{
   if (obj.addEventListener) {
      obj.addEventListener( type, fn, false );
   } else if (obj.attachEvent) {
      obj["e"+type+fn] = fn;
      obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
      obj.attachEvent( "on"+type, obj[type+fn] );
   }
}

function removeEvent( obj, type, fn )
{
   if (obj.removeEventListener) {
      obj.removeEventListener( type, fn, false );
   } else if (obj.detachEvent) {
      obj.detachEvent( "on"+type, obj[type+fn] );
      obj[type+fn] = null;
      obj["e"+type+fn] = null;
   }
}


function image_over(t)
        {
                if(t && window.overlib)
                        {
                                return overlib(t);
                        }
        }
				

function tooltip_desc(t)	{
document.write("",t,"");
}

function image_out()
        {
                if(window.nd)
                        {
                                return nd();
                        }
        }

        var searchModified=0;
        var interval=0;
        
        function selectall(i) {
          var s=document.getElementById('wgcms_advanced_params'+i);
          var a=new Array();
           if (s) {
              for (var i=0; i < s.options.length; ++i) {
                  a[i]=s.options[i].selected;
                  s.options[i].selected=true;
              }
           }
          return a;
        }
                                              
                                              
        function restoreselect(i,a) {
          var s=document.getElementById('wgcms_advanced_params'+i);
            if (s) {
              for (var i=0; i < s.options.length; ++i) {
                  s.options[i].selected=a[i];
              }
            }
        }
        
        function reloadCount() {
          if (searchModified==0) return;
          var jetzt = new Date();
          if (jetzt.getTime() < searchModified) return;
          searchModified=0;
          window.clearInterval(interval);
          var sf=document.getElementById("searchForm");
          //  var sf=document.forms['searchForm'];
          if (!sf) return;
//          sf.target="countFrame";
//          sf.action="count.html";
          var a1=selectall(1);
          var a2=selectall(2);
          var a3=selectall(3);
//          sf.submit();
//          sf.target="main";
//          sf.action="adsearch.html";
          restoreselect(1,a1);
          restoreselect(2,a2);
          restoreselect(3,a3);
          interval=window.setInterval('reloadCount()',100);
        }
                                      
        function triggerCount() {
          var jetzt = new Date();
          searchModified=jetzt.getTime()+1000;
        }
                                          
        function addkeyword(i) {
          var k=document.getElementById('wgcms_advanced_param'+i);
          var s=document.getElementById('wgcms_advanced_params'+i);
          if (k && s && k.value.length>0) {
              s.options[s.options.length]=new Option(k.value);
              k.value='';
              k.focus();
              triggerCount();
          }
        }
        function removeselected(i) {
          var s=document.getElementById('wgcms_advanced_params'+i);
          if (s) {
              for (var i=0; i < s.options.length; ++i) {
                  if (s.options[i].selected) {
                        s.options[i]=null;
                        i--;
                        triggerCount();
                    }
              }
          }
        }
                                                                                 
        function keepselected(i) {
          var s=document.getElementById('wgcms_advanced_params'+i);
          if (s) {
              for (var i=0; i < s.options.length; ++i) {
                  if (!s.options[i].selected) {
                       s.options[i]=null;
                       i--;
                       triggerCount();
                  }
              }
          }
        }
                                                                                                                                                                  
                                                                                                                                                                  
        function submitcheck() {
           addkeyword(0); selectall(0);
           addkeyword(1); selectall(1);
           addkeyword(2); selectall(2);
           var o0=document.getElementById('wgcms_advanced_params0');
           var o1=document.getElementById('wgcms_advanced_params1');
           var o2=document.getElementById('wgcms_advanced_params2');
           //return !!(o0 && o1 && o2 && (o0.options.length || o1.options.length || o2.options.length));
           return true;
        }
                                                                                                                                                                                
        function keyinput(event,i) {
           var e=event;
           if (!e) {
              e=window.event;
           }
            if (e && (e.keyCode == 13 || e.which == 13)) {
              addkeyword(i);
              return false;
              return true;
            }
        }
        function keylist(event,i) {
          var e=event;
          if (!e) {
              e=window.event;
            }
          if (e && (e.keyCode == 127 || e.keyCode == 35 || e.keyCode == 8 || e.which == 127 || e.which == 8 || e.keyCode == 46)) {
              removeselected(i);
              return false;
             }
            return true;
        }
                                  

        function wgcms_move_cartimage(source,dest) {
          source=parseInt(source);
          dest=parseInt(dest);
	  if (source==dest) return;
	  var step=1;
	  if (source>dest) step=-1;
          var objcontainer=document.getElementById('wgcms_cartimage_container_'+source);
	  var sobj=null;
          if (!objcontainer) return;
          sobj=objcontainer.getElementsByTagName("div")[0];   
	  if (!sobj) return;
	  objcontainer.removeChild(sobj);

	  for (var i=source; i!=dest; i+=step) {
//	alert("CART MOVE "+source+"->"+dest+"   "+(i+step)+"->"+i);
            var dc=document.getElementById('wgcms_cartimage_container_'+i);
	    if (!dc) return;
	    var sc=document.getElementById('wgcms_cartimage_container_'+(i+step));
	    if (!sc) return;
            obj=sc.getElementsByTagName("div")[0];   
	    if (!obj) return;
	    sc.removeChild(obj);
	    dc.insertBefore(obj,dc.firstChild);
	  }
          var dc=document.getElementById('wgcms_cartimage_container_'+dest);
	  if (!dc) return;
	  dc.insertBefore(sobj,dc.firstChild);
	  window.wgcms_drag_init_dom_changed=true;
        }  

        function wgcms_remove_cartimage(pos) {
          pos=parseInt(pos);
          var c=document.getElementById('wgcms_cart');
          if (c) {
	      var maxpos=0;
              while (document.getElementById('wgcms_cartimage_container_'+maxpos)) {
		maxpos++;
	      }
	      if (pos>maxpos || pos < 0) pos=maxpos; //
	      wgcms_move_cartimage(pos,maxpos);
              var dc=document.getElementById('wgcms_cartimage_container_'+(maxpos-1));
	      if (!dc) return;
	      dc.parentNode.removeChild(dc);
          }
          window.wgcms_drag_init_dom_changed=true;
        }
        
        
        var wgcms_massadd_cartimage=0;
        var wgcms_massadd_cartimage_maxpos=0;
        var wgcms_massadd_cartimage_html='';
        function wgcms_massadd_cartimage_start() {
          wgcms_massadd_cartimage=1;
          var maxpos=0;
          while (document.getElementById('wgcms_cartimage_container_'+maxpos)) {
            maxpos++;
          }
          wgcms_massadd_cartimage_maxpos=maxpos;
          wgcms_massadd_cartimage_container=document.getElementById('wgcms_cart');
          wgcms_massadd_cartimage_html='';
        }

        function wgcms_massadd_cartimage_end() {
          wgcms_massadd_cartimage=0;
          var div = document.createElement("div");
          div.innerHTML=wgcms_massadd_cartimage_html;
          wgcms_massadd_cartimage_html='';
          var c=document.getElementById('wgcms_cart');
          if (c) {
            while (div.firstChild) {
              var myDiv=div.removeChild(div.firstChild);
              c.appendChild(myDiv);
            }                                  
          }
          window.wgcms_drag_init_dom_changed=true;                                  
        }
        
        function wgcms_add_cartimage(id,pos,thumb,detail,popup,desc,hrdl,prdl,selectable,inselection,inbasket,style) {
          if (style==null) {
             style='cart';
          }
          if (wgcms_massadd_cartimage) {
            wgcms_massadd_cartimage_html+=wgcms_imageproto(id,wgcms_massadd_cartimage_maxpos,thumb,style,detail,1,1,popup,desc,hrdl,prdl,selectable,inselection,inbasket);
            wgcms_massadd_cartimage_maxpos++;
          } else {
            pos=parseInt(pos);
            var c=document.getElementById('wgcms_cart');
            if (c) {
	      var maxpos=0;
              while (document.getElementById('wgcms_cartimage_container_'+maxpos)) {
		maxpos++;
	      }
	      if (pos>maxpos || pos<0) pos=maxpos; // 
	      var div = document.createElement("div");
              div.innerHTML=wgcms_imageproto(id,maxpos,thumb,style,detail,1,1,popup,desc,hrdl,prdl,selectable,inselection,inbasket);
	      var myDiv=div.removeChild(div.firstChild);
              c.appendChild(myDiv);
              if (pos<maxpos) wgcms_move_cartimage(maxpos,pos);
              window.wgcms_drag_init_dom_changed=true;
            }
          }
        }  

                                  
var wgcms_is_dragging = null;
var wgcms_drag_init_function = null;
var wgcms_drag_start_function = null;

function wgcms_clear_dragging() {
  wgcms_is_dragging=null;
}

function wgcms_drag_init() {
  if (wgcms_drag_init_function) {
    wgcms_drag_init_function();
  }
}

function wgcms_drag_start() {
  if (wgcms_drag_start_function) {
    wgcms_drag_start_function();
  }
}


// DragDrop Namespace
( function() {
var oldMouseMoveHandler = null;
var oldMouseUpHandler = null;
var dragObject = null;
var dragParent = null;
var dragTarget = null;
var dragStarted = 0;
var dragTargetNext = 0;
var dropZones = new Array();
var start = [];
var absStart = [];
var dragMouseStart = null;

function drag_start(e)
{
    var dragDiv=document.getElementById("wgcms_dragDiv");
    if (!dragDiv) return;

   dragParent=this.parentNode;
   if (!dragParent || !dragParent.className.match(/^wgcms_\w*image_container$/)) return;

   dragTarget = null;
   
    // Position des Elements
   start = getPos(dragParent);
   absStart = start;

   // Position des Events
   var evt_pos = getEvtPos(e);
   dragMouseStart=evt_pos;

    // Die realative Startposition
    start[0] -= evt_pos[0];
    start[1] -= evt_pos[1];

    // Die Dragfunktion aktivieren
    var overDivTag = document.getElementById('overDiv');
    if (overDivTag) {
      overDivTag.style.display='none';
    }
    dragObject = this;

    oldMouseMoveHandler=document.onmousemove;
    oldMouseUpHandler=document.onmouseup;
    document.onmouseup = end_drag;
    document.onmousemove = do_drag;
    // ist wichtig, da ansonsten FF nicht draggt.
    
    dragStarted = 0;
    dropZones=new Array();
  //  drag_real_start();
    return false;
}

function drag_real_start()
{
    dragStarted=1;
    var dragDiv=document.getElementById("wgcms_dragDiv");
    if (!dragDiv) return;

    recalc_dropZones();

    dragDiv.style.visibility='hidden';

    dragParent.removeChild(dragObject);
    dragDiv.insertBefore(dragObject, dragDiv.firstChild);

    dragObject.style.top = (absStart[0]) + 'px';
    dragObject.style.left = (absStart[1]) + 'px';

    dragDiv.style.visibility='visible';

    dragParent.style.borderColor='red';
}



var debug=0;
function do_drag(e)
{
    if(!dragObject) return;
    if (!wgcms_is_dragging) wgcms_is_dragging = 1;
    var overDivTag = document.getElementById('overDiv');
    if (overDivTag) {
      overDivTag.style.visibility='hidden';
      overDivTag.style.display='block';
    }
    
    var pos = getEvtPos(e);
    if ( Math.abs(pos[0]-dragMouseStart[0])>4 || Math.abs(pos[1]-dragMouseStart[1])>4) {
      wgcms_is_dragging=2;
    } // else return true;

    if (wgcms_is_dragging<2) return false;
    var dragTargetOld = dragTarget;
    var dragTargetNextOld = dragTargetNext;
    dragTarget=null;
    var markLeft = 0;
    var markTop = 0;
    var markWidth = 0;
    var markHeight = 0;
    dragTargetNext = 0;
    for(var i = 0; i < dropZones.length; i++) {
        var dz=dropZones[i];
        var dzo = document.getElementById(dz[0]);
        if (!(dragObject.className=='wgcms_cartimage' &&  (dzo.className.match(/^wgcms_\w*image_container$/) && dzo.className!='wgcms_cartimage_container') ) && dz[1]<=pos[1] && dz[1]+dz[3]>=pos[1] && dz[2]<=pos[0] && dz[2]+dz[4]>=pos[0]) {
           dragTarget=document.getElementById(dz[0]);
	   markLeft=dz[1];
	   markTop=dz[2];
           markWidth=dz[3];
           markHeight=dz[4];
	   if (pos[1]-dz[1] > dz[1]+dz[3]-pos[1]) dragTargetNext=1;
	   else dragTargetNext=0;
//	   break; //find inner elements
        }
    }
    if (dragTargetOld!=dragTarget || dragTargetNextOld!=dragTargetNext) {
      var mark=document.getElementById("wgcms_dragMarkDiv");
      if (dragTarget) {
        //markieren
        if (mark) {
	  mark.style.width=markWidth+'px';
	  mark.style.height=markHeight+'px';
          if (dragTargetNext)
	    mark.style.left=(markLeft+markWidth)+'px';
	  else
	    mark.style.left=(markLeft-4)+'px';
	  mark.style.top=markTop+'px';
	  mark.style.visibility='visible';
	}

        dragObject.style.cursor = 'crosshair';
      } else {
        dragObject.style.cursor = 'move';
        if (mark) mark.style.visibility='hidden';
      }
    }

   // Position des Events
    var pos = getEvtPos(e);
    
   if (wgcms_is_dragging==2) {
     if (!dragStarted) {
       absStart=[pos[0] + start[0],pos[1] + start[1]];
       drag_real_start();
     } else {
       dragObject.style.top = (pos[0] + start[0]) + 'px';
       dragObject.style.left = (pos[1] + start[1]) + 'px';
     }
   }
   return false;
}
function end_drag(e)
{
    var overDivTag = document.getElementById('overDiv');
    if (overDivTag) {
      overDivTag.style.visibility='hidden';
      overDivTag.style.display='block';
    }

    document.onmouseup = null;
    document.onmousemove =  oldMouseMoveHandler;
    document.onmouseup =  oldMouseUpHandler;
    oldMouseMoveHandler = null;
    oldMouseUpHandler = null;

    var mark=document.getElementById("wgcms_dragMarkDiv");
    if (mark) mark.style.visibility='hidden';

    var dragDiv=document.getElementById("wgcms_dragDiv");
    if (!dragDiv) return;
    dragDiv.style.visibility='hidden';

    if(!dragObject) return;
    dragObject.style.cursor = 'move';

    if(!dragParent) return;
    dragParent.style.borderColor='transparent';

    if (!dragStarted) {
      dragParent = null;
      dragTarget = null;
      window.setTimeout("wgcms_clear_dragging()","100");
      dragObject = null;
      dropZones=new Array();
      return false;
    }


    dragDiv.removeChild(dragObject);
    dragObject.style.top = '0px';
    dragObject.style.left = '0px';


    if (dragTarget==null && (dragObject.className=='wgcms_cartimage' || dragObject.id.substring(0,15)=='wgcms_cartimage')) {
        dragParent.insertBefore(dragObject, dragParent.firstChild);
        if (wgcms_is_dragging==2)
	  xajax_cartDelItem(dragObject.id.substring(20));
    } else if (dragTarget && dragTarget!=dragParent) {
	
      var idxSource = null;
      var idxDest = null;

      var cartAdd = null;
      for(var i = 0; i < dropZones.length; i++) {
        var dz=dropZones[i];
	var dzo=document.getElementById(dz[0]);        
        if (dzo) {
          if (dzo==dragTarget) {
	    idxDest=i;
            if (dragObject.className.match(/^wgcms_\w*image$/) || dragObject.className=='wgcms_cartimage' || dragObject.id.substring(0,15)=='wgcms_cartimage') {
	      if (dzo.className=='wgcms_cartimage_container' || dzo.id.substring(0,26)=='wgcms_cartimage_container_') {
	        cartAdd=dzo.id.substring(26);
              } else if (dzo.id=='wgcms_cart') {
		cartAdd=-1;
              }
	    }
          } else if (dzo==dragParent) {
	    idxSource=i;
          }
        }
      }

      if (dragTargetNext) {
        idxDest++;
        if (cartAdd!=null && cartAdd>=0) cartAdd++;
      }
      if (cartAdd!=null && cartAdd==-1 && !dragTargetNext)
	  cartAdd=0;

      if (cartAdd!=null) {
        idxDest=idxSource;
      } else {
        var step=1;
        if (idxSource>=idxDest) step=-1;
        else idxDest--;
        for (var i=idxSource; i!=idxDest; i+=step) {
	  var csd=document.getElementById(dropZones[i+step][0]);
 	  var cdd=document.getElementById(dropZones[i][0]);
          if (csd && cdd && csd.className==cdd.className) { 
	    var cso=csd.getElementsByTagName("div")[0];
            if (cso) {
		csd.removeChild(cso);
        	cdd.insertBefore(cso, cdd.firstChild);
	    }
          }
        }
      }


      var cdd=document.getElementById(dropZones[idxDest][0]);
      if (cdd) {
        cdd.insertBefore(dragObject, cdd.firstChild);
      }
      if (cartAdd!=null) {
           xajax_cartAddItem(dragObject.id.replace(/^wgcms_\w*image_div_/,""),cartAdd);
      }
    } else {
      dragParent.insertBefore(dragObject, dragParent.firstChild);
    }    
    dragParent = null;
    dragTarget = null;
    window.wgcms_drag_init_dom_changed=true;
    window.setTimeout("wgcms_clear_dragging()","100");
    dragObject = null;
    dropZones=new Array();
    return false;
}

var wgcms_fixed='fixed';
if (navigator.userAgent.match(/msie\s[0-6]/gi)) {
  wgcms_fixed="not available";
}

function getStyle(obj, prop) {
  if (obj.style && obj.style[prop]) 
	return obj.style[prop];
  if (obj.currentStyle)
	return obj.currentStyle[prop];
  if (window.getComputedStyle)
	return window.getComputedStyle(obj,null).getPropertyValue(prop);
}
window.wgcms_getStyle=getStyle;

function getScrolloffset(obj,run) {
  var myScroll=[0,0,false];
  if (!obj) return myScroll;
  if (run && obj.myRun==run) return obj.myScrolloffset;

  var nodeName=obj.myTagName;
  if (!nodeName) {
    nodeName=obj.tagName.toUpperCase();
    obj.myTagName=nodeName;
  }
  if (nodeName != "BODY" && nodeName != "HTML") {
    myScroll=getScrolloffset(obj.parentNode,run);
    var scrollLeft=obj.scrollLeft;
    if(!isNaN(scrollLeft) && scrollLeft > 0 ){
      myScroll[0] += scrollLeft;
    }
    var scrollTop = obj.scrollTop;
    if(!isNaN(scrollTop) && scrollTop > 0 ){
      myScroll[1] += scrollTop;
    }
    if (!myScroll[2]) {
      if (obj.myPosition!=null) {
        if (obj.myPosition) myScroll[2]=true;
      } else {
        if (getStyle(obj,'position')==wgcms_fixed) {
          myScroll[2]=true;
          obj.myPosition=true;
        } else {
          obj.myPosition=false;
        }
      }
    }
  }
  obj.myScrolloffset=myScroll;
  obj.myRun=run;
  return myScroll;
}

function getPos(obj,run) {
        var curleft = curtop = 0;
        var self=obj;
        if (obj.offsetParent) {
                curleft = obj.offsetLeft;
                curtop = obj.offsetTop;
                while (obj = obj.offsetParent) {
                        curleft += obj.offsetLeft;
                        curtop += obj.offsetTop;
                        if (obj.myPosition!=null) {
                          if (obj.myPosition) break;
                        } else {
                          if (getStyle(obj,'position')==wgcms_fixed) {
                            obj.myPosition=true;
                            break;
                          }
                          obj.myPosition=false;
                        }
                }
        }
         // curtop-=0;
        //  curleft-=0;
 

        obj=self;
        var myScroll=getScrolloffset(obj,run);
        curleft -= myScroll[0];
        curtop -= myScroll[1];

        if (myScroll[2]) {
               var scrollLeft = document.body.scrollLeft || document.documentElement.scrollLeft;
                if(!isNaN(scrollLeft) && scrollLeft > 0 ){
                   curleft += scrollLeft;
                }
                var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
                if(!isNaN(scrollTop) && scrollTop > 0 ){
                   curtop += scrollTop;
                }
        }
	return [curtop, curleft, myScroll[2]];
}

window.wgcms_getPos=getPos;

var wgcms_recalc_run=0;
function recalc_dropZones() {
    dropZonesNew=new Array();
    var all = document.getElementsByTagName('div');
    wgcms_recalc_run++;   
    for(var i = 0; i < all.length; i++) {
      if ((all[i].className && all[i].className.match(/^wgcms_\w*image_container$/)) || all[i].id=='wgcms_cart') {
        var obj=all[i];
      	var pos=getPos(obj,wgcms_recalc_run);
	if (pos) {
 	   dropZonesNew[dropZonesNew.length]=[obj.id,pos[1],pos[0],obj.offsetWidth,obj.offsetHeight];
        }
      }
    }
    dropZones=dropZonesNew;
}

function drag_init() {
  if (window.wgcms_drag_init_dom_changed) {
    window.wgcms_drag_init_dom_changed=false;
    var all = document.getElementsByTagName('div');
    for(var i = 0; i < all.length; i++) {
      if(all[i].className && all[i].className.match(/^wgcms_\w*image$/)) {
         all[i].onmousedown = drag_start;
	 if (all[i].style.cursor!='crosshair')
           all[i].style.cursor = 'move';
      }
    }
  }
  window.setTimeout("wgcms_drag_init()",1000);
}

wgcms_drag_init_function=drag_init;
wgcms_drag_start_function=drag_start;
window.wgcms_drag_init_dom_changed=true;
drag_init();

addEvent( window, "load", function(evt) { window.wgcms_drag_init_dom_changed=true; } );

// Hilfsfunktionen:



function getEvtPos(e)
{
    if(!e) e = window.event;
    var t = e.pageY ? e.pageY : e.clientY + (document.body.scrollTop ? window.document.body.scrollTop : document.documentElement.scrollTop);
    var l = e.pageX ? e.pageX : e.clientX + (document.body.scrollLeft ? window.document.body.scrollLeft : document.documentElement.scrollLeft);
    return [t, l];
}

})() // Ende der anonymen Funktion



  var wgcmsFeatureDescQueue = new Array();
  var wgcmsFeatureQueueStarted = false;   

  function wgcmsFeatureStartQueue() {
    if (!wgcmsFeatureQueueStarted) { 
      wgcmsFeatureQueueStarted=true; 
      window.setTimeout("wgcmsFeatureUnqueue()",20);
    }
  }  
  function wgcmsFeatureUnqueue() {
    if (wgcmsFeatureDescQueue.length>0) {
      var i=1;
      var uq = new Array();
      while (i>0 && wgcmsFeatureDescQueue.length>0) {
        uq.push(wgcmsFeatureDescQueue.shift());
        --i;
      }
      xajax_getFeature(uq);
    }
  }  


  var wgcmsDescQueue = new Array();
  var wgcmsQueueStarted = false;
  function wgcmsStartQueue() {
    if (!wgcmsQueueStarted) {
      if (typeof(xajax)!="undefined" && typeof(xajax_getdescription)=='function' && typeof(wgcmsUnqueue)=='function' && xajaxLoaded) {
        wgcmsQueueStarted=true;
        window.setTimeout("wgcmsUnqueue()",20);
      } else {
        window.setTimeout("wgcmsStartQueue()",20);
      }
    } else {
      window.setTimeout("wgcmsUnqueue()",20);
    }
  }
  function wgcmsUnqueue() {
    if (wgcmsDescQueue.length>0) {
      var i=4;
      var uq = new Array();
      while (i>0 && wgcmsDescQueue.length>0) {
      uq.push(wgcmsDescQueue.shift());
      --i;
      }
      xajax_getdescription(uq);
    }
  }

function fireEvent (eventType, elementID)
{
    var o = document.getElementById(elementID);
    if (document.createEvent)
    {
        var evt = document.createEvent("Events");
        evt.initEvent(eventType, true, true);
        o.dispatchEvent(evt);
    } else if (document.createEventObject) {
        var evt = document.createEventObject();
        o.fireEvent('on' + eventType, evt);
    }
}

function wgcms_get_all_images(type) {
   var all=document.getElementsByTagName('div');
   var imgs=new Array();
   for(var i = 0; i < all.length; i++) {
	if (all[i].className && all[i].className=='wgcms_'+type+'image') {
           var id=all[i].id;
	   imgs.push(id.replace(/^wgcms_\w*image_div_/,''));
	}
   }
   return imgs;
}

function wgcms_get_selected_images(type) {
   var all=document.getElementsByTagName('div');
   var imgs=new Array();
   for(var i = 0; i < all.length; i++) {
        if (all[i].className && all[i].className=='wgcms_'+type+'image') {
           var id=all[i].id;
           id=id.replace(/^wgcms_\w*image_div_/,'');
  	   var a=document.getElementById('wgcms_'+type+'select_link_'+id);
           if (a) {
             var issel=a.getAttribute('isselected')=='true';
             if (issel) imgs.push(id);
	   }
        }
   }
   return imgs;
}



function wgcms_select_all_images(type,onoff) {
  var all=wgcms_get_all_images(type);
  var todo=new Array();
  for (var i = 0; i < all.length; i++) {
	var a=document.getElementById('wgcms_'+type+'select_link_'+all[i]);
	if (a) {
	  var issel=a.getAttribute('isselected')=='true';
	  if ((issel && !onoff) ||
		(!issel && onoff)) {
 		todo.push(all[i]);
	  }
	}
  }
  if (todo.length) xajax_setSelection(todo,type,onoff);
}

function wgcms_toggleSelectionMarker(id,type,version) {
  var a=document.getElementById('wgcms_'+type+'select_link_'+id);
  if (!a) return;  

  a.setAttribute('isselected',(version=='_checked'?'true':'false'));  
  var i=a.getElementsByTagName('img');
  if (i && i.length) {
    i[0].src='http://www.picturedesk.com/components/com_webgatecms/images/wgcms_select'+version+'.gif';
  }
}

function wgcms_selected_to_basket(type) {
//  var imgs=wgcms_get_selected_images(type);
  xajax_selectedIntoCart(type);

}

function wgcms_selected_to_cart(type) {
//  var imgs=wgcms_get_selected_images(type);

  xajax_selectedIntoLightbox(type);
}

function wgcms_init_dialog(dialog) {
    if (typeof(dialog)=='undefined') return;
    if (!dialog.divs_transparentDiv) {
      DHTMLSuite.commonObj.loadCSS(dialog.layoutCss);
      dialog.__createDivElements();
    }
    dialog.__resizeAndPositionDivElements();
    dialog.close();
}

var wgcmsContextMenu = new DHTMLSuite.contextMenu();
DHTMLSuite.commonObj.setCssCacheStatus(false);
wgcmsContextMenu.setWidth(140);


        interval=window.setInterval('reloadCount()',100);
        triggerCount();




