﻿
var hoverDisplayed = false;
var dragDisplayed = false;
var overLightbox = false;
var overCart = false;

var dragObj;
var callObj;

var nn6=document.getElementById&&!document.all;
var ie=document.all;
var opa = nn6 ? 0.50 : 50;

var winsize = new Array();

var snapOrigX;
var snapOrigY;
var snapCurrX;
var snapCurrY;
var snapBackTimer;
var snapCurrent;

var myWidth = 0;
var myHeight = 0;

var lbOver = false;
//var cartOver = false;
var lbHighlighted = false;

var assetID;
var assetLicense;

//Window sizing

function getClientDim() 
{
	//var b_version=navigator.appVersion
	//var version=parseFloat(b_version)

	if( typeof( window.innerWidth ) == 'number' ) 
	{
	  //Non-IE
	  myWidth = window.innerWidth;
	  myHeight = window.innerHeight;
	} 
	else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
	{
	  //IE 6+ in 'standards compliant mode'
	  myWidth = document.documentElement.clientWidth;
	  myHeight = document.documentElement.clientHeight;
	} 
	else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) 
	{
	  //IE 4 compatible
	  myWidth = document.body.clientWidth;
	  myHeight = document.body.clientHeight;
	  
	}
	return [myWidth, myHeight];
}


//TDA051 - rollback : function mouseAction(image, down, move, title, description, filetype,callingitem, license) {
function mouseAction(image,size, down, move, title, description, filetype,callingitem, license) {


    if (callingitem)
    {
        assetID = callingitem;
        assetLicense = license;
    }
    

    if(down == 1)
    {
       
        dragDisplayed = false;
        hidetrail();
        winsize=getClientDim();
        //TDA051 - rollback : showLightboxDrag(image);
        showLightboxDrag(image, size);
    }
    else if ((move ==1) && (down ==0) && (!dragDisplayed))
    {
        if(!hoverDisplayed)
        {
            hoverDisplayed = true;
            //TDA051 - rollback : showtrail(image, title,description, filetype);
            showtrail(image,size, title,description, filetype);
        }
    }
    else
    {
        
        hoverDisplayed = false;
        hidetrail();
    }

}




/*
Simple Image Trail script- By JavaScriptKit.com
Visit http://www.javascriptkit.com for this script and more
This notice must stay intact
*/

//var trailimage=["test.gif", 100, 99] //image path, plus width and height
var offsetfrommouse=[10,-20] //image x,y offsets from cursor position in pixels. Enter 0,0 for no offset
var displayduration=0 //duration in seconds image should remain visible. 0 for always.
var imageHeight = 480;
var imageWidth = 300;


if (document.getElementById || document.all)
{
	document.write('<div id="trailimageouter">');
	document.write('</div>');
}

//mousedownHandler
//document.onmousedown=mousedownHandler;

//TDA051 - rollback : function showtrail(image, title,description, filetype, height){
function showtrail(image,size, title,description, filetype, height){

    var innerHTML;
    innerHTML = "";
       
    imageHeight = height;
    document.onmousemove=followmouse;

    //heading text
    if (assetLicense == "RM")
    {
        innerHTML += '<span class="trailheadingRM">' + title + ' Rights-Managed</span>'
    }else if (assetLicense == "RF")
    {
        innerHTML += '<span class="trailheadingRF">' + title + ' Royalty Free</span>'
        
    }else if (assetLicense == '')
    {
        innerHTML += '<span class="trailheadingOth">' + title + '</span>'
    }else { 
        innerHTML += '<span class="trailheadingOth">' + title + ' '+assetLicense+'</span>'
    }
    
    //innerHTML += '<span class="trailheading">' + title + ' (Royalty Free)</span>'
    innerHTML += '<div class="trailimageinner">';
    //innerHTML += '<table border="0" cellpadding="0" class="trailheading"><tr><td>Royalty Free</td></tr></table>';
    
    //innerHTML = innerHTML + '<span class="trailtitle">' + title + '</span><br />';
    innerHTML = innerHTML +'<p>'+ description + '</p>';
    
    //innerHTML += '<table width="210px" border="0" cellpadding="0"><tr><td>' + description + '</td></tr></table>';
    
    //file
    if (filetype == 2) //Video
    {       
        innerHTML += "<object type=\"application/x-shockwave-flash\" data=\"FlowPlayer.swf\" width=\"320\" height=\"200\" id=\"FlowPlayer\">"
	    innerHTML += "<param name=\"allowScriptAccess\" value=\"sameDomain\" />"
	    innerHTML += "<param name=\"movie\" value=\"FlowPlayer.swf\" />"
	    innerHTML += "<param name=\"quality\" value=\"high\" />"
	    innerHTML += "<param name=\"scale\" value=\"noScale\" />"
	    innerHTML += "<param name=\"wmode\" value=\"transparent\" />"
	    innerHTML += "<param name=\"flashvars\" value=\"config={ playList: [ { url: '/VideoPreview/"+image+".flv' } ], hideControls: true, autoBuffering: true, autoPlay: true, initialScale: 'scale' }\" />"
	    innerHTML += "</object>"
    
    } else {
        //TDA-51 - START
            innerHTML = innerHTML + '<img src="/ImageThumbs/' + image + '/'+ size+'/' +image +'.jpg" border="0"></div>';
        //TDA051 - ROLLBACK
            //innerHTML = innerHTML + '<img src="' + image + '" border="0"></div>';
        //TDA051 - END
    }
    
    //innerHTML = innerHTML + '</div>';
    parent.top.document.getElementById("trailimageouter").innerHTML = innerHTML;
    parent.top.document.getElementById("trailimageouter").style.visibility = "visible";
    
    //document.getElementById("trailimageouter").innerHTML = innerHTML;
    //document.getElementById("trailimageouter").style.visibility = "visible";
    

    
    //gettrailobj().visibilty="visible";
    //trailimageid
}




function gettrailobj(){
    if (document.getElementById)
        return parent.top.document.getElementById("trailimageouter").style
        //return document.getElementById("trailimageouter").style
    else if (document.all)
        return parent.top.document.all.trailimagid.style
        //return document.all.trailimagid.style
}


function truebody(){
    return (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function hidetrail(){
    //gettrailobj().innerHTML = "";
    //TDA051 - START
    parent.top.document.getElementById("trailimageouter").innerHTML = "";
    //TDA051 - END
    gettrailobj().visibility="hidden";
    
//    document.onmousemove=""
}

function followmouse(e){



var xcoord=offsetfrommouse[0]
var ycoord=offsetfrommouse[1]
var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15
var docheight=document.all? Math.max(truebody().scrollHeight, truebody().clientHeight) : Math.max(document.body.offsetHeight, window.innerHeight)
imageHeight = 320;

docheight = truebody().clientHeight;


    if (typeof e != "undefined")
    {
        //xcoord+=e.pageX
        //ycoord+=e.pageY

		if (docwidth - e.pageX < 380){ //Daf - find out max width
			xcoord = e.pageX - xcoord - 330; // Move to the left side of the cursor
		} else {
			xcoord = xcoord + e.pageX;
		}
		
	    if (docheight - e.pageY < (imageHeight + 80)){//Daf - find out height of our div + replace 110
			ycoord += e.pageY - Math.max(0,(80 + imageHeight + e.pageY - docheight - truebody().scrollTop));
		} else {
			ycoord = ycoord + e.pageY;
			
		}        
    
    }
    else if (typeof window.event !="undefined"){
        //xcoord+=truebody().scrollLeft+event.clientX
        //ycoord+=truebody().scrollTop+event.clientY
        
       // alert('docheight:'+docheight + ' clientY:'+event.clientY + ' currentimageheight:'+imageHeight );
        
		if (docwidth - event.clientX < 360){ //Daf - find oue the max width of thumbnail
			xcoord = event.clientX + truebody().scrollLeft - xcoord - 355; // Move to the left side of the cursor
		} else {
			xcoord = truebody().scrollLeft+event.clientX + xcoord;
		}
		
		if (docheight - event.clientY < (imageHeight + 80)){
		    //should be if hit bottom page, but not working.
		    //alert('daftest1');
			ycoord = ycoord + event.clientY + truebody().scrollTop - Math.max(0,(80 + imageHeight + event.clientY - docheight));
		} else {
		    //should be if NOT at bottom
		    //alert('daftest2');
			ycoord = ycoord + truebody().scrollTop + event.clientY;
			
		}        
        
    }
 


    //alert(parent.top.document.body.clientHeight);
   //alert(location.href.substring(location.href.lastIndexOf('/')+1) );
    
    if(location.href.substring(location.href.lastIndexOf('/')+1).toUpperCase() == 'LIGHTBOXCART.ASPX')
    {
        

          //alert(parent.top.document.body.clientHeight - imageHeight - 80);
          ycoord = parent.top.document.body.clientHeight - imageHeight - 80;
          //ycoord  = ycoord + offsetfrommouse[1] - (80 + imageHeight);
        //alert('test');
        
   }
        
       
        
	if(ycoord < 0) { ycoord = ycoord*-1; }
	gettrailobj().left=xcoord+"px"
	gettrailobj().top=ycoord+"px"        

//    alert(ycoord);        
        //alert(xcoord +'-'+ ycoord);
    
        
}


////////////////////////////////////////////////////////////////////////////////
//Drag code

function mousedownHandler(e)
{
  var fobj       = nn6 ? e.target : event.srcElement;
  var topelement = nn6 ? "HTML" : "BODY";
  var thebutton;
  var delay;
  var target = nn6 ? e.target : event.srcElement;
  var showprev



   if (!dragDisplayed){

   }

  if(dragDisplayed) {
    snapOrigX = nn6 ? e.clientX : event.clientX;
    snapOrigY = nn6 ? e.clientY : event.clientY;
//    alert(snapOrigX + ' ' + snapOrigY);  
  
    return false;
    }




//alert('down');

//  delay = 100;

//  while (fobj.tagName != topelement && fobj.className != "dragme")
//  {
//    fobj = nn6 ? fobj.parentNode : fobj.parentElement;
//  }

//    //keycode - daf
//  if (nn6) theButton = e.which;
//  else theButton = event.button;  
//  if (theButton != 1) return false;

//  if (fobj.className=="dragme")
//  {
//  
//    //alert('dragme');
//    
//    
//	showprev = fobj.name.charAt(fobj.name.length-1)
//	dnd_oid = fobj.name;
//	if (showprev == 'Y') 
//	{
//		dnd_oid = dnd_oid.substring(0,dnd_oid.length-1)
//		dragDisplayed = true;
//	}

//	dobj = getObject('dragbox');
//	dobj.style.visibility='hidden';
//	dobj.innerHTML = '<img src="' + fobj.src + '">';
//	dobj.style.zIndex = 2;

////	if(nn6) dobj.style.opacity = opa
////	else dobj.style.filter='alpha(opacity='+opa+')';
//    
//        

//   x = nn6 ? e.clientX : event.clientX;
//   y = nn6 ? e.clientY : event.clientY;
//   //alert(x)
//	oldX = x;
//	oldY = y;
//   if (isIE) 
//   {
//   	shift = 30;
//	}
//	else
//	{
//	shift = 30;
//	}
//	
//	//	if(!isSafari) y += scrolltop;

//	dobj.style.top = (y - shift) + 'px';
//	dobj.style.left = (x - shift) + 'px';

//   tx = parseInt(dobj.style.left);
//   ty = parseInt(dobj.style.top);
//    
//   snapStartX = x - shift;
//   snapStartY = y - shift;

//   document.onmousemove=mousemoveHandler;
//	document.onmouseup=mouseupHandler;
//   return false;
//  }
}



//TDA051 rollback - function showLightboxDrag(image)
function showLightboxDrag(image, size)
{
   
    dragDisplayed = true;
    document.onmousemove=dragmouse;
    document.onmouseup=upmouse;  
    
    dragObj = getObject('dragbox');
	dragObj.style.visibility='hidden';
	dragObj.innerHTML = '<img src="/ImageThumbs/' + image + '/'+ size+'/' +image +'.jpg" border="0" >';
	dragObj.style.zIndex = 2;
	
//    if(nn6) dragObj.style.opacity = opa
//	else dragObj.style.filter='alpha(opacity='+opa+')';
	
	
	dragDisplayed = true;
    
    document.onmousemove=dragmouse;
    document.onmouseup=upmouse;
    
    
}

function hideLightboxDrag(image)
{
    dragDisplayed = false;
    document.onmousemove='';
    document.onmouseup='';  
    
    dragObj = getObject('dragbox');
	dragObj.style.visibility='hidden';
	dragObj.innerHTML = '';
	dragObj.style.zIndex = 2;
}


function dragmouse(e){

//alert('test');

    var downobj       = nn6 ? e.target : event.srcElement;
    var topelement = nn6 ? "HTML" : "BODY";

    var mouseX = nn6 ? e.clientX : event.clientX;
    var mouseY = nn6 ? e.clientY : event.clientY;
	
	var lightboxY = winsize[1]-120;
	
	
	//alert(lightboxY);
	
	if (mouseY > lightboxY)
	{
	
	    if(!lbOver){                
	        highlightLBMain();
	        lbOver = true;
	      }
	    
	
	}else if(lbHighlighted)
	{
	
	    highlightLBMain();
	    lbOver = false;    
	
	}

	dragObj.style.left = mouseX;//tx + mouse_x - x;
	dragObj.style.top  = mouseY;//nn6 && !isSafari ? ty + mouse_y - y  :  ty + mouse_y - y;
	
	dragObj.style.visibility='visible';
	
    return false;
}




function upmouse(e){

var intWhatLBC = -1; 

if(dragDisplayed)
{
   
    document.onmousemove="";
    document.onmouseup="";
    //if over lightbox do lightbox stuff.

    
    
    if (window.frames.lbox && window.frames.lbox.whatLBCTab) {
        intWhatLBC = window.frames.lbox.whatLBCTab();
    }

    

    if (lbOver && (intWhatLBC ==0)){ //Over lightbox

    
        //hide drag box
        hideLightboxDrag();

        //add to lightbox
        dropOnLightbox(assetID);
        
        //un-highlight lightbox
        if(lbHighlighted){
            highlightLBMain();
        }        
        lbOver = false;
        lbHighlighted = false;
    
    }else if(lbOver && (intWhatLBC ==1)){ //Over Cart
    
        //hide dragbox
        hideLightboxDrag();

        //add to cart    
        dropOnCart(assetID);
    
        //un-highlight lightbox
        if(lbHighlighted){
            highlightLBMain();
        }    
        lbOver = false;
        lbHighlighted = false;
    
    } else {

        //un-highlight lightbox
        if(lbHighlighted){
            highlightLBMain();
        }
    
        snapCurrX = parseInt(dragObj.style.left);
		snapCurrY = parseInt(dragObj.style.top);
        snapCurrent = 0;
		snapTimer = setInterval("snapBack('dragbox', snapOrigX, snapOrigY, snapCurrX, snapCurrY, 20)", 2);
       
    }
    
    dragDisplayed = false; 

}


}

function getObject(o)
{
	if (document.getElementById)
	    return document.getElementById(o)
	else if (document.all)
	    return document.all.o
}


function snapBack(layerToSnap, startX, startY, endX, endY, steps) 
{
   snapCurrent++;
   var snapX, snapY;

   if (snapCurrent == 1)
   {
       multi = 0;
   } 
   else 
   { 
       multi = (1 - Math.pow(0.9, snapCurrent - 1)) / (1 - Math.pow(0.9, steps - 1));
   }

   snapX = endX + (startX - endX) * multi;
   snapY = endY + (startY - endY) * multi;
    
   getObject(layerToSnap).style.left = snapX;
   getObject(layerToSnap).style.top = snapY;
   
   if (snapCurrent == steps) 
   {
		clearInterval(snapTimer);
		if(dragObj != "undefined") dragObj.innerHTML='';
   }
}





///////////////////////////////
/////////////Lightbox actions

function highlightLBMain() 
{
	if(lbHighlighted) 
	{
		frames['lbox'].document.bgColor = 'white';//'#E4E4E4';
		lbHighlighted = false;
	}else {	
		frames['lbox'].document.bgColor = '#DFDFDF';
		lbHighlighted = true;
	}
}


function dropOnLightbox(assetID)
{
    frames['lbox'].addtoLB(assetID);
}

function dropOnCart(assetID)
{
    frames['lbox'].addtoCart(assetID);
}

document.onmousedown=mousedownHandler;