﻿
var plugin
var main
var objsArr=new Array()


var img_width=80
var img_height=80
var num_imgs=5

var radiusX=300
var radiusY=150
var centerX=300
var centerY=150

var speed=-0.0015
var main_down=false


function mainCanvasLoaded(s) {

	//alert("main loaded")
	
	main=s.findName("mainCanvas")
	plugin = s.getHost()	
	imagesHolder=s.findName("imagesHolder")
	
	
	buildImages()
}

function mainCanvasMouseLeave(s) {
	main_down=false
}

function buildImages() {

	for(i=0;i<num_imgs;i++) {
	
		cur_img=i+".jpg"		
		img_url="sites/"+cur_img		 
		left_pos=0
		
		xaml_str='<Canvas Name="imageHolder_'+i+'" Canvas.Left="'+left_pos+'" Canvas.Top="0">'
			
		//reflections, kinda hard on the proc though...
		xaml_str += 	'<Canvas Name="imgHolderReflection_'+i+'" Canvas.Top="160" 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_'+i+'" ScaleY="-1" ScaleX="1" CenterX="0" CenterY="0" /></TransformGroup></Canvas.RenderTransform>'		
		xaml_str +=		' <Image Name="imgReflection_'+i+'" Stretch="UniformToFill" Height="'+img_height+'" Width="'+img_width+'" Source="'+img_url+'" />'
		xaml_str +=		'</Canvas>'				
		
		xaml_str+='  <Rectangle Name="rec_'+i+'" Canvas.Top="-6" Canvas.Left="-6" Fill="#999" Height="92" Width="92"></Rectangle>'
		xaml_str+='  <Image Cursor="Hand" MouseEnter="imageOver" MouseLeave="imageOut" MouseLeftButtonDown="imageDown" MouseLeftButtonUp="imageUp" Stretch="UniformToFill" Name="image_'+i+'" Height="'+img_height+'" Width="'+img_width+'" Source="'+img_url+'" Opacity="1" />'
								
		xaml_str+='  <Canvas.RenderTransform><ScaleTransform Name="st_'+i+'" 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_"+i]=new Object()
		objsArr["image_"+i].angle=i*((Math.PI*2)/num_imgs)
	
	}

	positionItems()
	moveItemsInt=setInterval("moveItems()",25)
}

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 mainDown(s) {
	main_down=true	
}

function mainUp(s) {
	main_down=false
}

function imageOver(s) {

	//main_down=false
	var ind=s.name.split("_")[1]
	s.findName("rec_"+ind).fill="#333"

}
function imageOut(s) {

	var ind=s.name.split("_")[1]
	s.findName("rec_"+ind).fill="#999"

}

function imageDown(s) {
	file_source=s.source.split("/")[1]
	//alert(file_source)
	
	s.findName("mainImages").source="sites/"+file_source
	s.findName("mainImagesHolder")["Canvas.ZIndex"]=169
}

function whenMouseMoves(s, e) {	
	var pt = e.getPosition(null);
	_root_xmouse = pt.x
	_root_ymouse = pt.y	
	speed=((_root_xmouse-330)/330) * 0.0755
}