var SalesRep=new Class({
	domNode:"content",
	player:"http://yourbestsalesrep.com/playerw.swf",
	width:"256px",
	hieght:"512px",
	flashVer:"9",
	install:null,//"expressInstall.swf",
	attributes:
	{
	id:"myTour",
	name:"myTour",
	align:"br"
	},
	flashvars:{
		clickable:"no",
		clickURL:"http://www.yourbestsalesrep.com",
		presentationType:0,
		playType:1,
		playtrip:0,
		days:3,
		drawShadow:"yes",
		shadowsize:1,
		drawdark:.5, 
		shadAngle:-45,
		shadAlpha:.10,
		shadDistance:15,
		secondsAfterStop:1,
		secondsBeforeStart:.5,
		bufferTime:15,
		source:null
	},
	params:{
		quality: "autohigh",
		align: "br",
		play: "true",
		loop: "false",
		scale: "noorder",
		wmode: "transparent",
		devicefont: "false",
		bgcolor: "#ffffff",
		menu: "false",
		allowFullScreen: "false",
		allowScriptAccess: "always",
		salign: "br"
	},
	initialize:function(flashvars, params, attributes){
		var me=this;
		me.attributes=$merge(me.attributes,attributes||{});
		me.flashvars=$merge(me.flashvars,flashvars||{});
		me.params=$merge(me.params,params||{});
	},
	createTourBox:function(parent){
		if(!$("tourBox")){
			var cntr=new Element("div",{id:"tourBox",style:"position:fixed; bottom:0px; right:0px;margin:0 auto;padding:0;z-index:5000;"});
			cntr.addEvent("mouseover",function(){
				$("myTour").focus();
			});
			var tour=$(new Element("div",{id:"myTour",style:"bottom:0px; right:0px;margin:0 auto;padding:0;z-index:5000;"}));
			cntr.appendChild(tour);
			$(parent).appendChild(cntr);
		}
	},
	loadButtons:function(){
		var me=this;
		$(me.domNode).appendChild(PlayerEvents.buttons.play);
		$(me.domNode).appendChild(PlayerEvents.buttons.replay);

	},
	removeButtons:function(){
		var me=this;		
		if(PlayerEvents.buttons.play.parentNode){
			PlayerEvents.buttons.play.parentNode.removeChild(PlayerEvents.buttons.play);
		}
		if(PlayerEvents.buttons.replay.parentNode){
			PlayerEvents.buttons.replay.parentNode.removeChild(PlayerEvents.buttons.replay);
		}
		if(PlayerEvents.buttons.tour.parentNode){
			PlayerEvents.buttons.tour.parentNode.removeChild(PlayerEvents.buttons.tour);
		}
	},
	setTourClip:function(clip, link){
		var me=this;
		if(true||!link||link==""){
			me.setPlayClip(clip);
		}
		me.loadButtons();
	},
	setPlayClip:function(clip){
		var me=this;
		PlayerEvents.buttons.play.setStyle("display","");
		PlayerEvents.buttons.replay.setStyle("display","none");
		PlayerEvents.buttons.play.removeEvents('click');
		PlayerEvents.buttons.play.addEvent('click',function(){
			me.play({source:clip});
		});

	},
	setReplayClip:function(clip){
		var me=this;
		PlayerEvents.buttons.play.setStyle("display","none");
		PlayerEvents.buttons.replay.setStyle("display","");
		PlayerEvents.buttons.replay.removeEvents('click');
		PlayerEvents.buttons.replay.addEvent('click',function(){
			me.play({source:clip});
		});
	},	
	play:function(flashvars, params, attributes){
		var me=this;
		//$(me.domNode).appendChild(PlayerEvents.loadingGif);
		me.removeButtons();

		var a=$merge(me.attributes, attributes||{});
		var f=$merge(me.flashvars, flashvars||{});
		var p=$merge(me.params, params||{});

		var dim=me.parseFileNameParameters(f.source);
		f.source=me.fixUrl(f.source);
		

		//me.setReplayClip(f.source);
		me.createTourBox(me.domNode); //only creates box if not already there.
		function cb(e){
			//swfobject.removeSWF(me.player);
			}
		swfobject.embedSWF(me.player, me.attributes.id, dim.w||me.width, dim.h||me.hieght, me.flashVer, me.install, f, p, a, cb);
	},	
	fixUrl:function(url){
		return url.replace(/%/g, '%25').replace(/&/g, '%26').replace(/\?/g, '%3F').replace(/=/g,'%3D');
	},
	parseFileNameParameters:function(fileName){
		var params={};
		try{
			var strVars=fileName.split("/").pop().split(".")[0].split("_");
			params.h=strVars.pop().toInt();
			params.w=strVars.pop().toInt();
		}catch(e){
			
		}
		/**
		 * Insanity check
		 */
		if(!params.h||!params.w)return {};
		if(params.w<100&&params.w>800) return {};
		if(params.h<100&&params.h>1000) return {};

		/**
		 * attempt scale down
		 */
		// TODO: check monitor size and use native sizes if it is huge. 
		
		var maxW=params.w;	var maxH=params.h; //neither param can extend this size
		try{
		var w=$(window).getSize().size.y;
	
		}catch(e){
			//not really sure how ie will fuck this up.
		}
		if(w){
			w=Math.round((Math.round(w/16))*16);
			var s=((w*0.5)/params.h);
			
			s=((s*params.h)/16.0)*16.0/params.h;
			params.h=Math.round(params.h*s); params.w=Math.round(params.w*s);
			
			//console.debug(s+" - "+w);
			
		}else
		{
			params.h=params.h*(3.0/4.0);	params.w=params.w*(3.0/4);
		}
		
		var min=208.0; //at least one param should be greator than this.
		
		/*if either is too big shrink whichever is larger compared to the max value*/

		//scale down if bigger than max
		if(params.h>maxW||params.w>maxH){
			//console.debug("shrink");
			if(params.h/maxH>params.w/maxW){
				params.w=params.w*(maxH/params.h);
				params.h=maxH;
			}else
			{
				params.h=params.h*(maxW/params.w);
				params.w=maxW;			
			}		
		}
		
		//scale up if smaller than mins
		if(params.h<min&&params.w<min){
			//console.debug("expand");
			if(params.h>params.w){
				params.w=params.w*(min/params.h);
				params.h=min;
			}else{ 	
				params.h=params.h*(min/params.w);
				params.w=min;
			}
		}
		
		
		//console.debug(params);
		
		return params;
	}
});

if(!PlayerEvents){
	var SalesRepPlayer=new SalesRep();
	var PlayerEvents=
	{
			loadingGif: new Asset.image("/template/images/loading.gif", {id: 'loadingImage', title: 'loading', style:"position:absolute; position:fixed; bottom:100px; right:10px; text-align:center;"}),
			buttons:
			{
		play:new Asset.image("/template/images/play.png", {id: 'playButton', title: 'play', style:"height: 25px; width:82px; position:absolute; position:fixed; bottom:50px; right:50px; text-align:center; cursor:pointer; display:none;"}),
		replay:new Asset.image("/template/images/replay.png", {id: 'replayButton', title: 'replay', style:"height: width:82px; 25px; position:absolute; position:fixed; bottom:50px; right:50px; text-align:center; cursor:pointer; display:none;"}),
		tour:new Asset.image("/template/images/tour.png", {id: 'touyButton', title: 'tour', style:"height: 25px; width:82px; position:absolute; position:fixed; bottom:70px; right:20px; text-align:center; cursor:pointer; display:none;"})
			},
			onReady:function(){
				if(PlayerEvents.loadingGif.parentNode){
					setTimeout(function(){
						PlayerEvents.loadingGif.parentNode.removeChild(PlayerEvents.loadingGif); //hide loading gif
					},1000);
				}
			},
			onDone:function(){	//clean html
				var n=$("myTour");
				var p=n.parentNode;
				p.removeChild(n);
				p.appendChild(new Element("div",{id:"myTour", style:"bottom:0px; right:0px;margin:0 auto;padding:0;z-index:5000;"}));

				SalesRepPlayer.loadButtons();

			}
	};


}
