function Exception(name,message){if(name){this.name=name}if(message){this.message=message}}Exception.prototype.setName=function(name){this.name=name};Exception.prototype.getName=function(){return this.name};Exception.prototype.setMessage=function(msg){this.message=msg};Exception.prototype.getMessage=function(){return this.message};function FlashTag(src,width,height){this.src=src;this.width=width;this.height=height;this.version="7,0,14,0";this.id=null;this.bgcolor="ffffff";this.flashVars=null}FlashTag.prototype.setVersion=function(v){this.version=v};FlashTag.prototype.setId=function(id){this.id=id};FlashTag.prototype.setBgcolor=function(bgc){this.bgcolor=bgc};FlashTag.prototype.setFlashvars=function(fv){this.flashVars=fv};FlashTag.prototype.toString=function(){var ie=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;var flashTag=new String();if(ie){flashTag+='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ';if(this.id!=null){flashTag+='id="'+this.id+'" '}flashTag+='codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+this.version+'" ';flashTag+='width="'+this.width+'" ';flashTag+='height="'+this.height+'">';flashTag+='<param name="movie" value="'+this.src+'"/>';flashTag+='<param name="quality" value="high"/>';flashTag+='<param name="bgcolor" value="#'+this.bgcolor+'"/>';if(this.flashVars!=null){flashTag+='<param name="flashvars" value="'+this.flashVars+'"/>'}flashTag+="</object>"}else{flashTag+='<embed src="'+this.src+'" ';flashTag+='quality="high" ';flashTag+='bgcolor="#'+this.bgcolor+'" ';flashTag+='width="'+this.width+'" ';flashTag+='height="'+this.height+'" ';flashTag+='type="application/x-shockwave-flash" ';if(this.flashVars!=null){flashTag+='flashvars="'+this.flashVars+'" '}if(this.id!=null){flashTag+='name="'+this.id+'" '}flashTag+='pluginspage="http://www.macromedia.com/go/getflashplayer">';flashTag+="</embed>"}return flashTag};FlashTag.prototype.write=function(doc){doc.write(this.toString())};function FlashSerializer(useCdata){this.useCdata=useCdata}FlashSerializer.prototype.serialize=function(args){var qs=new String();for(var i=0;i<args.length;++i){switch(typeof (args[i])){case"undefined":qs+="t"+(i)+"=undf";break;case"string":qs+="t"+(i)+"=str&d"+(i)+"="+escape(args[i]);break;case"number":qs+="t"+(i)+"=num&d"+(i)+"="+escape(args[i]);break;case"boolean":qs+="t"+(i)+"=bool&d"+(i)+"="+escape(args[i]);break;case"object":if(args[i]==null){qs+="t"+(i)+"=null"}else{if(args[i] instanceof Date){qs+="t"+(i)+"=date&d"+(i)+"="+escape(args[i].getTime())}else{try{qs+="t"+(i)+"=xser&d"+(i)+"="+escape(this._serializeXML(args[i]))}catch(exception){throw new Exception("FlashSerializationException","The following error occurred during complex object serialization: "+exception.getMessage())}}}break;default:throw new Exception("FlashSerializationException","You can only serialize strings, numbers, booleans, dates, objects, arrays, nulls, and undefined.")}if(i!=(args.length-1)){qs+="&"}}return qs};FlashSerializer.prototype._serializeXML=function(obj){var doc=new Object();doc.xml="<fp>";this._serializeNode(obj,doc,null);doc.xml+="</fp>";return doc.xml};FlashSerializer.prototype._serializeNode=function(obj,doc,name){switch(typeof (obj)){case"undefined":doc.xml+="<undf"+this._addName(name)+"/>";break;case"string":doc.xml+="<str"+this._addName(name)+">"+this._escapeXml(obj)+"</str>";break;case"number":doc.xml+="<num"+this._addName(name)+">"+obj+"</num>";break;case"boolean":doc.xml+="<bool"+this._addName(name)+' val="'+obj+'"/>';break;case"object":if(obj==null){doc.xml+="<null"+this._addName(name)+"/>"}else{if(obj instanceof Date){doc.xml+="<date"+this._addName(name)+">"+obj.getTime()+"</date>"}else{if(obj instanceof Array){doc.xml+="<array"+this._addName(name)+">";for(var i=0;i<obj.length;++i){this._serializeNode(obj[i],doc,null)}doc.xml+="</array>"}else{doc.xml+="<obj"+this._addName(name)+">";for(var n in obj){if(typeof (obj[n])=="function"){continue}this._serializeNode(obj[n],doc,n)}doc.xml+="</obj>"}}}break;default:throw new Exception("FlashSerializationException","You can only serialize strings, numbers, booleans, objects, dates, arrays, nulls and undefined");break}};FlashSerializer.prototype._addName=function(name){if(name!=null){return' name="'+name+'"'}return""};FlashSerializer.prototype._escapeXml=function(str){if(this.useCdata){return"<![CDATA["+str+"]]>"}else{return str.replace(/&/g,"&amp;").replace(/</g,"&lt;")}};function FlashProxy(uid,proxySwfName){this.uid=uid;this.proxySwfName=proxySwfName;this.flashSerializer=new FlashSerializer(false)}FlashProxy.prototype.call=function(){if(arguments.length==0){throw new Exception("Flash Proxy Exception","The first argument should be the function name followed by any number of additional arguments.")}var qs="lcId="+escape(this.uid)+"&functionName="+escape(arguments[0]);if(arguments.length>1){var justArgs=new Array();for(var i=1;i<arguments.length;++i){justArgs.push(arguments[i])}qs+=("&"+this.flashSerializer.serialize(justArgs))}var divName="_flash_proxy_"+this.uid;if(!document.getElementById(divName)){var newTarget=document.createElement("div");newTarget.id=divName;document.body.appendChild(newTarget)}var target=document.getElementById(divName);var ft=new FlashTag(this.proxySwfName,1,1);ft.setVersion("6,0,65,0");ft.setFlashvars(qs);target.innerHTML=ft.toString()};FlashProxy.callJS=function(){var functionToCall=eval(arguments[0]);var argArray=new Array();for(var i=1;i<arguments.length;++i){argArray.push(arguments[i])}functionToCall.apply(functionToCall,argArray)}