/*///////////////////////////////////////////////////////////////////////////////////////////////
Load a png() v1.1 - by Jason Savage
------------------------------------------------------------------------------------------------
setup: <script type="text/javascript">png({src:'image_01.png',width:460, height:300});</script>
//////////////////////////////////////////////////////////////////////////////////////////////*/

var pngFrame = 'swf/pngframe.swf'; //edit based on your site layout

function png(setupObject){
	if(typeof(setupObject) != 'object' || !setupObject.src) return 'Error: no argumants supplied (or not supplied as an object)';
	if(setupObject.swf) pngFrame = setupObject.swf;

	document.write(_png.png(setupObject));
}

//Setup _png local functions object
var _png = {
	version : '1.1',
	png : function (so){
		var s = {codebase:'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',classid:'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000',
		loop:'true',menu:'false',pluginspage:'http://www.macromedia.com/go/getflashplayer',type:"application/x-shockwave-flash",quality:'high',wmode:'transparent',
		align:'middle',scale:'showall',allowFullScreen:'false',allowScriptAccess:'sameDomain'}; 
		s.width = (so.width)?so.width:'100%'; s.height = (so.height)?so.height:'100%';
		s.id = s.name = (so.id)?so.id:so.src.split('.')[0].split('/').pop(); 
		s.src = s.movie = pngFrame + '?pngsrc='+so.src;
		return _png.build(s);
	},
	build : function(obj){
		var o,p,e
		o = _png.Keep(obj,['classid','codebase',' width','height','id','align']);
    	p = _png.Keep(obj,['allowScriptAccess','allowFullScreen','movie','loop','menu','quality','wmode','scale']);
    	e = _png.Keep(obj,['src','loop','menu','quality','width','height','name','align','allowScriptAccess','allowFullScreen','type','pluginspage','wmode','scale']);
		o = _png.Map(o,function(b,a){return a+'="'+b+'" ';}).join("")
		p = _png.Map(p,function(b,a){return '<param name="'+a+'" value="'+b +'" />';}).join("")
		e = _png.Map(e,function(b,a){return a+'="'+b+'" ';}).join("")
		return '<object ' + o + '>' + p + '<embed ' + e + '/></object>';
	},
	Keep : function (obj,removeArray){
		newobj={},key=removeArray.join(",");
		for(x in obj) if(key.indexOf(x) != -1) newobj[x] = obj[x]; return newobj;
	},
	Map : function(obj/*:Object*/, callback/*:Function*/)/*:Array*/{
		if(!obj || typeof(callback) != 'function') return []; 
		var a=[],r='';for(x in obj){r=callback(obj[x],x,obj);if(r!='')a.push(r);}
		return a;
	}
}