var plugin
var main
var objsArr = new Array()
var imageWidth=120
var imageHeight=120
var num_imgs=24
var radiusX=450
var radiusY=110
var centerX=450
var centerY=200
var speed=-0.0005
var main_down=false

function mainCanvasLoaded(s) {
	main=s.findName("mainCanvas")
	plugin = s.getHost()	
	imagesHolder=s.findName("imagesHolder")	
	buildImages()
}

function mainCanvasMouseLeave(s) {
	main_down=false
}

function mainCanvasMouseEnter(s) {
	main_down=true
}

function buildImages() {
	for(i=0;i<3;i++) {
        for (j=0;j<8; j++)
        {	
            k = (i * 8) + j;
		    cur_img="("+j+").png"		
		    img_url="images/"+cur_img
		    left_pos=0
    		
		    xaml_str='<Canvas Name="imageHolder_'+k+'" Canvas.Left="'+left_pos+'" Canvas.Top="0">'

		    xaml_str += 	'<Canvas Name="imgHolderReflection_'+k+'" Canvas.Top="240" Opacity="1">'
		    xaml_str += 	' <Canvas.OpacityMask>'
		    xaml_str += 	'   <LinearGradientBrush  StartPoint="0,0" EndPoint="0,1">'           
		    xaml_str += 	'     <GradientStop Offset="0.37" Color="#00000000"  />'      
		    xaml_str += 	'     <GradientStop Offset="1" Color="#88000000"  />'
		    xaml_str += 	'    </LinearGradientBrush>'          
		    xaml_str += 	' </Canvas.OpacityMask>'
		    xaml_str += 	' <Canvas.RenderTransform><TransformGroup><ScaleTransform Name="ReflectionScaleTransform_'+k+'" ScaleY="-1" ScaleX="1" CenterX="0" CenterY="0" /></TransformGroup></Canvas.RenderTransform>'		
		    xaml_str +=		' <Image Name="imgReflection_('+k+')" Stretch="UniformToFill" Height="'+imageHeight+'" Width="'+imageWidth+'" Source="'+img_url+'" />'
		    xaml_str +=		'</Canvas>'		
				    
		    xaml_str+='  <Image Cursor="Hand" MouseEnter="imageOver" MouseLeave="imageOut" MouseLeftButtonDown="imageDown" MouseLeftButtonUp="imageUp" Stretch="UniformToFill" Name="image_'+k+'" Height="'+imageHeight+'" Width="'+imageWidth+'" Source="'+img_url+'" Opacity="1" />'
    								
		    xaml_str+='  <Canvas.RenderTransform><ScaleTransform Name="st_'+k+'" ScaleX="1" ScaleY="1" CenterX="50" CenterY="50"/></Canvas.RenderTransform>'			
		    xaml_str+='</Canvas>'

		    xamlTags=plugin.content.createFromXaml(xaml_str)
		    imagesHolder.children.add(xamlTags)	
    				
		    objsArr["image_"+k]=new Object()
		    objsArr["image_"+k].angle=k*((Math.PI*2)/num_imgs)	
        }
	}

	positionItems()
	moveItemsInt=setInterval("moveItems()",24)
}

function moveItems() {
	if(main_down) {
		positionItems()
	}
}


function positionItems() {
	for(i=0;i<num_imgs;i++) {
	
		var my_x=Math.cos(objsArr["image_"+i].angle)*radiusX + centerX
		var my_y=Math.sin(objsArr["image_"+i].angle)*radiusY + centerY

		main.findName("imageHolder_"+i)["Canvas.Left"]=my_x
		main.findName("imageHolder_"+i)["Canvas.Top"]=my_y

		var stRef=main.findName("st_"+i)

		var sc = (my_y  - stRef.scaleY) / (centerY+radiusY-stRef.scaleY)

		stRef.scaleX=sc
		stRef.scaleY=sc

		objsArr["image_"+i].angle+=speed
		main.findName("imageHolder_"+i)["Canvas.ZIndex"]=parseInt(my_y)
	}

}

function imageOver(s) {
    main_down=false
    s["Width"] += 20;
    s["Height"] += 20;
    file_source=s.source.split("/")[1];
	s.findName("mainImage").source="imagetext/"+file_source;
	s.findName("mainImageHolder")["Canvas.ZIndex"]=169;
}

function imageOut(s) {
    main_down=true
    s["Width"] -= 20;
    s["Height"] -= 20;
    s.findName("mainImage").source = null;	
}

function imageDown(s) {
	file_source=s.source.split("/")[1];
	file_source=file_source.replace("png", "rdp");
	window.open("http://dpe-server/CoolTS/packaged/"+file_source);	
}

function whenMouseMoves(s, e) {	
	var pt = e.getPosition(null);
	_root_xmouse = pt.x
	_root_ymouse = pt.y	
	speed=((_root_xmouse-500)/500) * 0.0755
}