function requestAJAXrun(query, func){ 
	var req = null; 
	if (window.XMLHttpRequest){
		req = new XMLHttpRequest();
	}else if (window.ActiveXObject){
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		}catch (e){
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			}catch (e) {
			}
		}
	}
	req.onreadystatechange = function(){
		if(req.readyState == 4){
			if(req.status == 200){
				func(req.responseText);
			}else{
				func("Error: returned status code " + req.status + " " + req.statusText);
			}	
		}
	};
	req.open("GET", query, true); 
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
	req.send(null); 
} 
function manageonmousemove(e){
	var ret;
	if(mm_lbCart){ret=movemouse(e);}
	if(mm_hoverThumb){followmouse(e);}
	if(ret===false)return false;
}
function setCartH(h){
	cartH=h;
	document.getElementById('cartIframe').style.height=h;
	document.getElementById('bottomfs1').style.height= h-22;
	setCookie('cartH',cartH);
}
function setCartHwd(h){
	setCartH(h);
	if(dockCartB){
		cartT=GetHeight()-h-2;
		dobj.style.top=cartT+(ie?getScrollXY()[1]:0);
		setCookie('cartT',cartT);
	}
}
function collapseCart(){
	if(cartCollapsed){
		h=cartOrigH;
		document.getElementById('collapseBut').innerHTML="Collapse";
		cartCollapsed=0;
		setCookie('cartCollapsed',0);
	}else{
		h=cartOrigMinH;
		document.getElementById('collapseBut').innerHTML="Restore";
		cartCollapsed=1;
		setCookie('cartCollapsed',1);
	}
	setCartHwd(h);
}
function closeCart(){
	document.getElementById('cartIframe').style.display='none';
	setCookie('cartV',0);
}
function checkAutohideTurnOn(){
	if(autohideTurnOn){
		autohideTurnOn=0;
		autohidec=1;
		setTimeout(HideCart,autohideSec*1000);
	}
}
var lbid=0;
function changeLightbox(newId, addId){
	if(newId==-1){
		if(!validateNewLbName()) return;
	}
	lbid=newId;
	document.getElementById('cart_thumbs').innerHTML = '';
	document.getElementById('cartContent_lightbox').style.display='block';
	document.getElementById('cartContent_newlightbox').style.display='none';
	setCartHwd(cartOrigH);
	if(newId==-1){
		o=document.getElementById('lightbid');
		var newel = document.createElement('option');
		newel.setAttribute('value','lbtempop');
		newel.setAttribute('id','lbtempop');
		newel.innerHTML = 'Please wait...';
		o.insertBefore(newel, o.firstChild);
		o.value='lbtempop';
	}else{
		document.getElementById('lightbid').value=newId;
		if(is_logged_in){
			document.getElementById('cartView').href='http://www.dreamstime.com/lightbox_det.php?showcart=1&id='+newId;
			document.getElementById('cartBuy').href='http://www.dreamstime.com/lightbox_buy.php?showcart=1&id='+newId;
			document.getElementById('cartEmail').href='http://www.dreamstime.com/lightbox_email.php?showcart=1&id='+newId;
		}
	}
	if(autoAddid && !addId){
		addId=autoAddid;
		autoAddid=0;
	}
	o=document.getElementById('cart_thumbs');
	o.innerHTML='<div style="margin-top:15px; color:#888888">Loading...</div>';
	requestUrl='ajax/cart.php?getlightbimages=1'+(newId==-1?'&lname='+document.getElementById('lname').value:'&lightbid='+newId)+(addId?'&addimg='+addId:'');
	requestAJAXrun(requestUrl, 
		function(responseText){
			if(newId==-1){
				p=responseText.indexOf('~');
				if(p){
					o=document.getElementById('lbtempop');
					try{
						o.removeNode(true);
					}catch(e){
						o.parentNode.removeChild(o);
					}
					lbid=responseText.substr(0,p);
					o=document.getElementById('lightbid');
					var newel = document.createElement('option');
					newel.setAttribute('value',lbid);
					newel.innerHTML = document.getElementById('lname').value;
					o.insertBefore(newel, o.firstChild);
					o.value=lbid;
					if(is_logged_in){
						document.getElementById('cartView').href='http://www.dreamstime.com/lightbox_det.php?showcart=1&id='+lbid;
						document.getElementById('cartBuy').href='http://www.dreamstime.com/lightbox_buy.php?showcart=1&id='+lbid;
						document.getElementById('cartEmail').href='http://www.dreamstime.com/lightbox_email.php?showcart=1&id='+lbid;
					}
					responseText=responseText.substr(p+1);
					p=responseText.indexOf('~');
					if(p){
						cartCountImages=responseText.substr(0,p);
						updateCount();
						o=document.getElementById('cart_thumbs');
						o.style.width=(cartCountImages*80+1)+'px';
						o.style.marginLeft=0;
						responseText=responseText.substr(p+1);
						scrollCthumbsTo(15);
						if(autoAddid){
							if(autoCreateLB){
								cart_add(autoAddid, autoAddimgSrc, autoAddimgOnMO);
							}
							autoAddid=0;
							autoAddimgSrc='';
							autoAddimgOnMO='';
						}
					}
					document.getElementById('cart_thumbs').innerHTML = responseText;
					if(autoAddid){
						if(autoCreateLB){
							cart_add(autoAddid, autoAddimgSrc, autoAddimgOnMO);
						}
						autoAddid=0;
						autoAddimgSrc='';
						autoAddimgOnMO='';
					}
				}
			}else{
				p=responseText.indexOf('~');
				if(p){
					cartCountImages=responseText.substr(0,p);
					if(isNaN(cartCountImages)){
						o=document.getElementById('cart_msg');
						o.innerHTML=cartCountImages;
						responseText=responseText.substr(p+1);
						p=responseText.indexOf('~');
						cartCountImages=responseText.substr(0,p);
					}
					updateCount();
					o=document.getElementById('cart_thumbs');
					o.style.width=(cartCountImages*80+1)+'px';
					o.style.marginLeft=0;
					responseText=responseText.substr(p+1);
					scrollCthumbsTo(15);
					if(autoAddid){
						if(autoCreateLB){
							//cart_add(autoAddid, autoAddimgSrc, autoAddimgOnMO);
						}
						autoAddid=0;
						autoAddimgSrc='';
						autoAddimgOnMO='';
					}
				}
				
				p=responseText.indexOf('~');
				if(p>-1){
					document.getElementById('cart_msg').innerHTML = responseText.substr(0,p);
					responseText=responseText.substr(p+1);
				}
				p=responseText.indexOf('~');
				if(p>-1){
					cartCountImages=responseText.substr(0,p);
					updateCount();
					responseText=responseText.substr(p+1);
				}
				
				document.getElementById('cart_thumbs').innerHTML = responseText;
			}
		}
	);
}
function updateCount(){
		o=document.getElementById('cart_count');
		o.innerHTML=cartCountImages;
}
function createLightbox(addimg){
	if(addimg)autoAddid=addimg;
	document.getElementById('new_lightbid').value=0;
	document.getElementById('cartContent_lightbox').style.display='none';
	document.getElementById('cartContent_newlightbox').style.display='block';
	setCartHwd(cartOrigNewCartH);
}
function submitNewLightbox(addimg){
	changeLightbox(-1);
}
function submitNewLightboxKeyPress(e){
	var key=e.keyCode || e.which;
	if (key==13){
		changeLightbox(-1);
	}
}
function scrollCartInPosition(){
	document.getElementById('cartIframe').style.display='';
	setCookie('cartV',1);
	if(cartL>-1 || cartT>-1){
		dobj.style.left=cartL; 
		dobj.style.top=cartT+(ie?getScrollXY()[1]:0);
		setCookie('cartT',cartT);
		setCookie('cartL',cartL);
		setCookie('dockCartB',dockCartB);
		setCookie('dockCartR',dockCartR);
		setCartHwd(cartH);
	}else{
		dockCartB=1;
		dockCartR=1;
		cartL=GetWidth()-cartW-(ie?0:scrollW)-2;
		cartT=GetHeight()-cartH-2;
		dobj.style.left=cartL; 
		dobj.style.top=cartT+(ie?getScrollXY()[1]:0);
		setCookie('cartT',cartT);
		setCookie('cartL',cartL);
		setCookie('dockCartB',dockCartB);
		setCookie('dockCartR',dockCartR);
		setCartHwd(cartH);
	}
}
function HideCart(){
	if(autohidec){
		document.getElementById('cartIframe').style.display='none';
		setCookie('cartV',0);
	}
}
function toggleAHCart(){
	if(autohidec){
		autohidec=0;
		document.getElementById('autohcBut').innerHTML='<img title="Autohide" src="'+static_adr+'site-img/but_lbox1.gif" alt="Autohide" >';
	}else{
		autohidec=1;
		document.getElementById('autohcBut').innerHTML='<img title="Don\'t autohide" src="'+static_adr+'site-img/but_lbox5.gif" alt="Don\'t autohide" >';
		setTimeout(HideCart,autohideSec*1000);
	}
}
function movemouse(e){
	var fobj = nn6 ? e.target : event.srcElement;
	if (fobj===dobj){
		_l = parseInt(dobj.style.left+0);
		_t = parseInt(dobj.style.top+0);
		_w = dobj.offsetWidth;
		_h = dobj.offsetHeight;
		_r = _l+_w;
		_b = _t+_h;
		_x = nn6 ? e.clientX : event.clientX;
		_y = nn6 ? e.clientY : event.clientY;
		_c='';
		if(Math.abs(_x-_l)<=b){
			_c+='w';
		}
		if(Math.abs(_x-_r)<=b){
			_c+='e';
		}
		if(_c){
			dobj.style.cursor=_c+'-resize';
		}else{
			dobj.style.cursor='move';
		}
	}
	if(isdrag || isresize){
		if(isdrag || (isresize && c.indexOf('w')>-1)){
			dl=nn6 ? e.clientX - x : event.clientX - x;
			dobj.style.left = tx + dl;
			if(GetWidth()-(ie?0:scrollW)-cartW-2-parseInt(dobj.style.left+0)<dd){
				dobj.style.left=GetWidth()-(ie?0:scrollW)-cartW-2;
				dockCartR=1
			}else{
				dockCartR=0;
			}
			if(parseInt(dobj.style.left+0)<dd){
				dobj.style.left=0;
				dockCartL=1
			}else{
				dockCartL=0;
			}
		}
		if(isdrag || (isresize && c.indexOf('n')>-1)){
			dt=nn6 ? e.clientY - y : event.clientY - y;
			dobj.style.top  = ty + dt;
			if(GetHeight()-cartH-2-parseInt(dobj.style.top+0)+(ie?getScrollXY()[1]:0)<dd){
				dobj.style.top=GetHeight()-cartH-2+(ie?getScrollXY()[1]:0);
				dockCartB=1
			}else{
				dockCartB=0;
			}
			if(parseInt(dobj.style.top+0)-(ie?getScrollXY()[1]:0)<dd){
				dobj.style.top=0+(ie?getScrollXY()[1]:0);
				dockCartT=1
			}else{
				dockCartT=0;
			}
		}
		if(isresize && (c.indexOf('w')>-1 || c.indexOf('e')>-1)){
			dx=nn6 ? e.clientX - x : event.clientX - x;
			if(c.indexOf('w')>-1)w = tw - dx;
			if(c.indexOf('e')>-1)w = tw + dx;
			if(w<480)w=480;
			dobj.style.width = w;
			cf.style.width = w-12;
			document.getElementById('cartContent_thumbs').style.width=w-12-62;
			cartW=w;
		}
		if(isresize && (c.indexOf('n')>-1 || c.indexOf('s')>-1)){
			dy=nn6 ? e.clientY - y : event.clientY - y;
			if(c.indexOf('n')>-1)h = th - dy;
			if(c.indexOf('s')>-1)h = th + dy;
			dobj.style.height  = h;
			cf.style.height = h-22;
			cartH=h;
		}
		cartL=parseInt(dobj.style.left+0);
		cartT=parseInt(dobj.style.top+0)-(ie?getScrollXY()[1]:0);
		setCookie('cartL',cartL);
		setCookie('cartT',cartT);
		setCookie('cartW',cartW);
		setCookie('cartH',cartH);
		
		setCookie('dockCartT',dockCartT);
		setCookie('dockCartB',dockCartB);
		setCookie('dockCartL',dockCartL);
		setCookie('dockCartR',dockCartR);
		return false;
	}
}

function pressmouse(e){
  var fobj = nn6 ? e.target : event.srcElement;
  if (fobj===dobj){
    tx = parseInt(dobj.style.left+0);
    ty = parseInt(dobj.style.top+0);
	tw = dobj.offsetWidth;
	th = dobj.offsetHeight;
	tr = tx+tw;
	tb = ty+th;
    x = nn6 ? e.clientX : event.clientX;
    y = nn6 ? e.clientY : event.clientY;
	c=_c;
	if(c){
		isresize = true;
	}else{
		isdrag = true;
	}
    return false;
  }
}
function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}
function releasemouse(e){
	isdrag=false
    isresize = false;
	c='';
}
function GetWidth(){
	  var x = 0;
	  if (self.innerHeight) {
			  x = self.innerWidth;
	  }else if (document.documentElement && document.documentElement.clientHeight){
			  x = document.documentElement.clientWidth;
	  }else if (document.body){
			  x = document.body.clientWidth;
	  }
	  return x;
}

function GetHeight(){
	  var y = 0;
	  if (self.innerHeight){
			  y = self.innerHeight;
	  }else if (document.documentElement && document.documentElement.clientHeight){
			  y = document.documentElement.clientHeight;
	  }else if (document.body){
			  y = document.body.clientHeight;
	  }
	  return y;
}		
function pagescroll(){
	dobj.style.top=getScrollXY()[1]+cartT;
}
function deb(str){
	if(typeof console == 'object'){
		console.log(str);
	}
}
function scrollCthumbs(d){
	o=document.getElementById('cart_thumbs');
	scrollCthumbsTo(parseInt(o.style.marginLeft+0)+d)
} 
function scrollCthumbsTo(nx){
	if(sctTmr){
		sctStep=0;
		clearInterval(sctTmr);
		sctTmr=0;
	}
	o=document.getElementById('cart_thumbs');
	if(nx>15)nx=15
	if(nx<-130-parseInt(o.offsetWidth+0)+cartW-5)nx=-130-parseInt(o.offsetWidth+0)+cartW-5;
	if(cartW-72>=parseInt(o.offsetWidth+0))nx=15;
	sctX=nx;
	setCookie('cartScroll',sctX);
	sctStep=0;
	sctTmr=setInterval(scrollCth,1000/sctFPS);
}
function scrollCth(){
	sctStep++;
	o=document.getElementById('cart_thumbs'); 
	cx=parseInt(o.style.marginLeft+0);
	d=(sctX-cx)/portion;
	if(d>0 && d<1)d=1;
	if(d<0 && d>-1)d=-1;
	o.style.marginLeft=cx+d;
	if(sctX==cx){
		o.style.marginLeft=sctX;
		sctStep=0;
		clearInterval(sctTmr);
		sctTmr=0;
	}
}
function cart_remove(id){
	o=document.getElementById('cthb_'+id);
	//o.style.display='none';
	try{
		o.removeNode(true);
	}catch(e){
		o.parentNode.removeChild(o);
	}
	
	o=document.getElementById('cart_thumbs');
	o.style.width=(parseInt(o.offsetWidth+0)-80)+'px';
	//if(sctX+80>-130-parseInt(o.offsetWidth+0)+cartW-5)o.style.marginLeft=sctX+80;
	if(sctX==-130-parseInt(o.offsetWidth+0)+cartW-5){
		scrollCthumbsTo(-999999);
	}else{
		o.style.marginLeft=sctX+80;
		scrollCthumbsTo(sctX);
	}
	
	requestAJAX('ajax/cart.php?lightbid='+document.getElementById('lightbid').value+'&delimg='+id, 'cart_msg'); 
	cartCountImages--;
	updateCount();
}
autoAddid=0;
autoAddimgSrc='';
autoAddimgOnMO='';
function msgbox(str){
	if(debugMode){
		alert(str);
	}
}
msgSkipped=0;
function cart_add(id, imgSrc, imgOnMO){
	if(ie){
		addToLbId(id,document.getElementById('lightbid').value);
		return;
	}
	if(document.getElementById('cartContent_lightbox').style.display=='none'){
		if(!msgSkipped || document.getElementById('bottomfs1').style.display=='none'){
			msgSkipped=1;
			autoAddid=id;
			autoAddimgSrc=imgSrc;
			autoAddimgOnMO=imgOnMO;
			document.getElementById('bottomfs1').style.display='';
		}else{
			if(autoCreateLB){
				document.getElementById('lname').value='Untitled';
				changeLightbox(-1,id);
			}else{
				alert(DTL_BOTTOMFRAME_012);
			}
		}
	}else{
		requestAJAXrun('ajax/cart.php?lightbid='+document.getElementById('lightbid').value+'&addimg='+id,
			function(responseText){
				p=responseText.indexOf('~');
				if(p){
					code=responseText.substr(0,p);
					responseText=responseText.substr(p+1);			
				}
				document.getElementById('cart_msg').innerHTML = responseText;
				if(responseText=='Image added to lightbox.' || responseText=='Image added to temporary lightbox/cart.' || code==40){
					o=document.getElementById('cart_thumbs');
					//o.style.display='none';
					var newdiv = document.createElement('div');
					newdiv.setAttribute('id','cthb_'+id);
					newdiv.setAttribute('class','thb_cell');
					newdiv.setAttribute('style','float: none; width:72px; display:'+(ie?'inline':'inline-table')+'; ');
					html='';
					html+='<a name="'+id+'" id="'+id+'"></a>';
					html+='<div class="thb_cells thb_c1">';
					html+='<a href="-car-show-image'+id+'">';
					html+='<img id="thumb'+id+'" src="'+imgSrc+'" onmouseover="'+imgOnMO.replace("'","\'")+'" onmouseout="trailOff2();">';
					html+='</a>';
					html+='</div>';
					html+='<div class="thb_cells thb_c2">';
					html+='<div class="fr" style="margin: 4px 1px 0pt 0pt; cursor: pointer;"><img src="site-img/cart_remove.gif" onmouseover="this.src=\'site-img/cart_remove_over.gif\'" onmouseout="this.src=\'site-img/cart_remove.gif\'" onclick="cart_remove('+id+')"></div>';
					html+='<div class="thb_c21" style="overflow: hidden;"><a style="font-size: 9px;" href="-car-show-image'+id+'">#'+id+'</a></div>';
					html+='</div>';
					newdiv.innerHTML = html;
					o.insertBefore(newdiv, o.firstChild);
					
					o.style.width=(parseInt(o.offsetWidth+0)+80)+'px';
					if(sctX==15)o.style.marginLeft=15-80;
					scrollCthumbsTo(15);
					
					cartCountImages++;
					updateCount();
				}
			}
		)
	}
}
function addToLbId(id,new_lbId){
	if(new_lbId==-1){
		createLightbox(id);
	}else{
		changeLightbox(new_lbId, id)
	}
	if(document.getElementById('cartIframe').style.display=='none'){
		scrollCartInPosition();
	}
	document.getElementById('cartIframe').style.display='';
}
function validateNewLbName(){
	try{
		lname=document.getElementById('lname');
		if(lname.value.length == 0 || lname.value.match(/^[\s]+$/))
		{
			alert(DTL_BOTTOMFRAME_001);
			lname.focus();
			lname.select();
			return false;
		}
		if (!lname.value.match(/^[a-zA-Z0-9\s]+$/))
			{
				alert (DTL_BOTTOMFRAME_002);
				lname.focus();
				lname.select();
				return false;
			}
	}catch (e){
	}
	return true;
}

var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
function flashtest_DoFSCommand(command, args) {
	var flashtestObj = InternetExplorer ? flashtest : document.flashtest;
	mainfs1.location=args;
}
if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 && navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) {
  document.write('<SCRIPT LANGUAGE=VBScript\> \n');
  document.write('on error resume next \n');
  document.write('Sub flashtest_FSCommand(ByVal command, ByVal args)\n');
  document.write(' call flashtest_DoFSCommand(command, args)\n');
  document.write('end sub\n');
  document.write('</SCRIPT\> \n');
}

sctFPS=30
sctDuration=2
sctSteps=sctFPS*sctDuration;
sctStep=0;
sctTmr=0;
var cartScript='bottomframe3.php';
var ie=document.all;
var nn6=document.getElementById&&!document.all;
var b=5;
var dd=20;
var c,_c,isdrag,isresize;
var mm_hoverThumb,mm_lbCart;
var cartOrigW=812;
var cartOrigH=222-50;
var cartOrigMinH=52;
var cartOrigNewCartH=92;
var portion=18;
var scrollW=17;
var mainfs1=document;
var dobj = document.getElementById('cartIframe');
var cf = document.getElementById('bottomfs1');
var autohideSec=3;
mm_lbCart=1;


