
var plugin
var main
var objsArr=new Array()


var img_width=80
var img_height=80
var num_imgs=31

var radiusX=480
var radiusY=110
var centerX=450
var centerY=350

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="pic"+i+".jpg"		
		img_url="image/"+cur_img		 
		left_pos=0
		
		xaml_str='<Canvas Name="imageHolder_'+i+'" Canvas.Left="'+left_pos+'" Canvas.Top="0">'
				
		/*	
		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="#FFF" 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="yellow"

}
function imageOut(s) {

	var ind=s.name.split("_")[1]
	s.findName("rec_"+ind).fill="#FFF"

}



function imageDown(s) {

	file_source=s.source.split("/")[1]
	
	s.findName("mainImage").source="image/"+file_source
	s.findName("mainImageHolder")["Canvas.ZIndex"]=350
}



function whenMouseMoves(s, e) {	
	var pt = e.getPosition(null);
	_root_xmouse = pt.x
	_root_ymouse = pt.y	
	speed=((_root_xmouse-500)/500) * 0.0755
}


