Permalink
Browse files

1. Initial commit to git

  • Loading branch information...
0 parents commit 4a1b6cb4558639e2a6099564e4c2fbfe291a7e72 @mattlevine mattlevine committed Aug 12, 2011
Showing with 16,167 additions and 0 deletions.
  1. +5 −0 .gitignore
  2. +29 −0 Application.cfc
  3. +68 −0 ApplicationProxy.cfm
  4. +34 −0 admin/Application.cfc
  5. +19 −0 admin/Application_not_used.cfm
  6. +27 −0 admin/index.cfm
  7. +195 −0 admin/javaScripts.cfm
  8. +51 −0 admin/login.cfm
  9. +88 −0 admin/otherviewer.cfm
  10. +74 −0 admin/password.cfm
  11. +14 −0 admin/preview.cfm
  12. +64 −0 admin/print.cfm
  13. +70 −0 admin/questions.cfm
  14. +125 −0 admin/questions_edit.cfm
  15. +43 −0 admin/questiontypes.cfm
  16. +92 −0 admin/questiontypes_edit.cfm
  17. +476 −0 admin/stats.cfm
  18. +28 −0 admin/stats_matrix.cfm
  19. +21 −0 admin/stats_mc.cfm
  20. +9 −0 admin/stats_pie.cfm
  21. +12 −0 admin/style.xml
  22. +9 −0 admin/style_pie.xml
  23. +54 −0 admin/surveys.cfm
  24. +386 −0 admin/surveys_edit.cfm
  25. +88 −0 admin/template_edit.cfm
  26. +47 −0 admin/templates.cfm
  27. +82 −0 admin/textviewer.cfm
  28. +46 −0 admin/users.cfm
  29. +118 −0 admin/users_edit.cfm
  30. +37 −0 admin/viewemaillist.cfm
  31. +16 −0 admin/xml.questions.cfm
  32. +360 −0 cfcs/question.cfc
  33. +127 −0 cfcs/questiontype.cfc
  34. +10 −0 cfcs/settings.xml.cfm
  35. +35 −0 cfcs/soundings.cfc
  36. +607 −0 cfcs/survey.cfc
  37. +69 −0 cfcs/surveyProxy.cfc
  38. +154 −0 cfcs/template.cfc
  39. +116 −0 cfcs/toxml.cfc
  40. +187 −0 cfcs/user.cfc
  41. +96 −0 cfcs/utils.cfc
  42. +48 −0 dsp_list.cfm
  43. +107 −0 handlers/matrix/display.cfm
  44. +333 −0 handlers/matrix/edit.cfm
  45. +50 −0 handlers/matrix/preview.cfm
  46. +49 −0 handlers/matrix/save.cfm
  47. +104 −0 handlers/matrix/stats.cfm
  48. +87 −0 handlers/multiplechoice/display.cfm
  49. +214 −0 handlers/multiplechoice/edit.cfm
  50. +27 −0 handlers/multiplechoice/preview.cfm
  51. +48 −0 handlers/multiplechoice/print.cfm
  52. +55 −0 handlers/multiplechoice/save.cfm
  53. +117 −0 handlers/multiplechoice/stats.cfm
  54. +24 −0 handlers/multiplechoicemulti/display.cfm
  55. +16 −0 handlers/multiplechoicemulti/edit.cfm
  56. +6 −0 handlers/multiplechoicemulti/preview.cfm
  57. +17 −0 handlers/multiplechoicemulti/print.cfm
  58. +18 −0 handlers/multiplechoicemulti/save.cfm
  59. +20 −0 handlers/multiplechoicemulti/stats.cfm
  60. +24 −0 handlers/multiplechoicemultiother/display.cfm
  61. +16 −0 handlers/multiplechoicemultiother/edit.cfm
  62. +6 −0 handlers/multiplechoicemultiother/preview.cfm
  63. +18 −0 handlers/multiplechoicemultiother/save.cfm
  64. +21 −0 handlers/multiplechoicemultiother/stats.cfm
  65. +24 −0 handlers/multiplechoiceother/display.cfm
  66. +16 −0 handlers/multiplechoiceother/edit.cfm
  67. +6 −0 handlers/multiplechoiceother/preview.cfm
  68. +18 −0 handlers/multiplechoiceother/save.cfm
  69. +21 −0 handlers/multiplechoiceother/stats.cfm
  70. +131 −0 handlers/nextquestion.cfm
  71. +9 −0 handlers/nextquestionlogic.cfm
  72. +48 −0 handlers/textbox/display.cfm
  73. +92 −0 handlers/textbox/edit.cfm
  74. +10 −0 handlers/textbox/preview.cfm
  75. +26 −0 handlers/textbox/print.cfm
  76. +36 −0 handlers/textbox/save.cfm
  77. +41 −0 handlers/textbox/stats.cfm
  78. +24 −0 handlers/textboxmulti/display.cfm
  79. +16 −0 handlers/textboxmulti/edit.cfm
  80. +10 −0 handlers/textboxmulti/preview.cfm
  81. +18 −0 handlers/textboxmulti/print.cfm
  82. +18 −0 handlers/textboxmulti/save.cfm
  83. +20 −0 handlers/textboxmulti/stats.cfm
  84. +53 −0 handlers/truefalse/display.cfm
  85. +99 −0 handlers/truefalse/edit.cfm
  86. +10 −0 handlers/truefalse/preview.cfm
  87. +28 −0 handlers/truefalse/save.cfm
  88. +54 −0 handlers/truefalse/stats.cfm
  89. +23 −0 handlers/yesno/display.cfm
  90. +16 −0 handlers/yesno/edit.cfm
  91. +10 −0 handlers/yesno/preview.cfm
  92. +18 −0 handlers/yesno/save.cfm
  93. +21 −0 handlers/yesno/stats.cfm
  94. +3 −0 htmlHead.cfm
  95. BIN images/bg.gif
  96. BIN images/bodyBg.gif
  97. BIN images/bodyBottom.gif
  98. BIN images/headerTop.gif
  99. BIN images/input.gif
  100. BIN images/left.gif
  101. BIN images/login.gif
  102. BIN images/logo.gif
  103. BIN images/menu1.gif
  104. BIN images/menu1Hot.gif
  105. BIN images/menu2.gif
  106. BIN images/menu2Hot.gif
  107. BIN images/menu3.gif
  108. BIN images/menu3Hot.gif
  109. BIN images/menu4.gif
  110. BIN images/menu4Hot.gif
  111. BIN images/menuLeft.gif
  112. BIN images/menuRight.gif
  113. BIN images/right.gif
  114. BIN images/shim.gif
  115. +4,595 −0 includes/SpryData.js
  116. +16 −0 includes/jquery-1.5.2.min.js
  117. +31 −0 includes/jquery.json-2.2.min.js
  118. +93 −0 includes/udf.cfm
  119. +2,499 −0 includes/xpath.js
  120. +53 −0 index.cfm
  121. BIN install/Welcome to Soundings.pdf
  122. +4 −0 install/migrate3/Application.cfm
  123. +11 −0 install/migrate3/assignsurveys.cfm
  124. +15 −0 install/migrate3/userid.cfm
  125. +154 −0 install/mysql.sql
  126. +219 −0 install/postgres.sql
  127. +303 −0 install/readme.txt
  128. +136 −0 install/sqlserver.sql
  129. +29 −0 pagetemplates/admin_footer.cfm
  130. +56 −0 pagetemplates/admin_header.cfm
  131. +16 −0 pagetemplates/main_footer.cfm
  132. +16 −0 pagetemplates/main_header.cfm
  133. +17 −0 pagetemplates/plain_footer.cfm
  134. +26 −0 pagetemplates/plain_header.cfm
  135. +13 −0 plugin/config.cfm
  136. +13 −0 plugin/config.xml
  137. +11 −0 plugin/dbScripts/mssqlDelete.cfm
  138. +116 −0 plugin/dbScripts/mssqlInstall.cfm
  139. +11 −0 plugin/dbScripts/mysqlDelete.cfm
  140. +153 −0 plugin/dbScripts/mysqlInstall.cfm
  141. +7 −0 plugin/dbScripts/updates/mssql.cfm
  142. +5 −0 plugin/dbScripts/updates/mysql.cfm
  143. +146 −0 plugin/plugin.cfc
  144. +88 −0 stylesheets/adminStyle.css
  145. +63 −0 stylesheets/embed.css
  146. +100 −0 stylesheets/style.css
  147. +45 −0 survey.cfm
  148. +23 −0 tags/datacol.cfm
  149. +178 −0 tags/datatable.cfm
  150. +31 −0 tags/layout.cfm
  151. +37 −0 tags/surveycomplete.cfm
  152. +306 −0 tags/surveydisplay.cfm
@@ -0,0 +1,5 @@
+/.project
+/.settings
+/.DS_Store
+/settings.xml
+/.rdsTempFiles
@@ -0,0 +1,29 @@
+<!--- This file is part of Mura CMS.
+
+ Mura CMS is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, Version 2 of the License.
+
+ Mura CMS is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Mura CMS. If not, see <http://www.gnu.org/licenses/>. --->
+<cfcomponent output="false">
+
+ <cfinclude template="../../config/applicationSettings.cfm">
+
+ <cffunction name="onRequestStart" returnType="boolean" output="false">
+ <cfargument name="thePage" type="string" required="true">
+
+ <cfinclude template="../../config/settings.cfm">
+ <cfinclude template="plugin/config.cfm" />
+ <cfinclude template="ApplicationProxy.cfm">
+
+
+ <cfreturn true>
+ </cffunction>
+
+</cfcomponent>
@@ -0,0 +1,68 @@
+<cfsetting enablecfoutputonly=true showdebugoutput=false>
+<!---
+ Name : Application.cfm
+ Author : Raymond Camden
+ Created : September 2, 2004
+ Last Updated : August 3, 2007
+ History : change application.cfc to soundings.cfc
+ : Stupid IE. If you hit ENTER instead of clicking the button, it wouldn't send the value. (rkc 3/1/06)
+ : work w/o mapping (rkc 3/10/06)
+ : user changes (rkc 8/3/07)
+ Purpose :
+--->
+
+
+<cfset pApp=request.pluginConfig.getApplication() />
+<cfset pSession=request.pluginConfig.getSession() />
+
+
+<cfif not pApp.valueExists("init") or structKeyExists(url,"reinit")>
+
+ <!--- Get main settings --->
+ <cfset pApp.setValue("soundings",createObject("component","cfcs.soundings"))>
+ <cfset pApp.setValue("settings",pApp.getValue("soundings").getSettings())>
+
+ <!--- Mura plugin --->
+ <cfset pApp.getValue("settings").dsn = application.configBean.getDatasource()>
+ <cfset pApp.getValue("settings").dbtype = application.configBean.getDBType()>
+ <cfset pApp.getValue("settings").fromaddress = application.configBean.getAdminEmail()>
+ <cfset pApp.getValue("settings").tableprefix = "sp" & request.pluginConfig.getPluginID() & "_">
+ <!--- --->
+
+ <cfset pApp.setValue("survey",createObject("component","cfcs.surveyProxy").init(pApp.getValue("settings").dsn,pApp.getValue("settings").dbtype,pApp.getValue("settings").tableprefix))>
+ <cfset pApp.setValue("question",createObject("component","cfcs.question").init(pApp.getValue("settings").dsn,pApp.getValue("settings").dbtype,pApp.getValue("settings").tableprefix))>
+ <cfset pApp.setValue("questiontype",createObject("component","cfcs.questiontype").init(pApp.getValue("settings").dsn,pApp.getValue("settings").dbtype,pApp.getValue("settings").tableprefix))>
+ <cfset pApp.setValue("template",createObject("component","cfcs.template").init(pApp.getValue("settings").dsn,pApp.getValue("settings").dbtype,pApp.getValue("settings").tableprefix))>
+ <cfset pApp.setValue("user",createObject("component","cfcs.user").init(pApp.getValue("settings").dsn,pApp.getValue("settings").dbtype,pApp.getValue("settings").tableprefix))>
+ <cfset pApp.setValue("utils",createObject("component","cfcs.utils"))>
+ <cfset pApp.setValue("toxml",createObject("component","cfcs.toxml"))>
+
+ <cfset request.pSession.surveys = structNew()>
+ <cfset pApp.setValue("init",true)>
+
+</cfif>
+
+<cfset request.pApp=pApp.getAllValues() />
+<cfset request.pSession=pSession.getAllValues() />
+
+<!--- include UDFs --->
+<cfinclude template="includes/udf.cfm">
+
+<cfif isDefined("url.logout")>
+ <cfset structDelete(request.pSession, "loggedin")>
+</cfif>
+
+<!--- handle security --->
+<cfif not request.udf.isLoggedOn()>
+
+ <!--- are we trying to logon? --->
+ <cfif isDefined("form.username") and isDefined("form.password")>
+ <cfif request.pApp.user.authenticate(form.username,form.password)>
+ <cfset request.pSession.user = request.pApp.user.getUser(form.username)>
+ <cfset request.pSession.loggedin = true>
+ </cfif>
+ </cfif>
+
+</cfif>
+
+<cfsetting enablecfoutputonly=false>
@@ -0,0 +1,34 @@
+<cfcomponent output="false">
+
+ <cfinclude template="../../../config/applicationSettings.cfm">
+
+ <cffunction name="onRequestStart" returnType="boolean" output="false">
+ <cfargument name="thePage" type="string" required="true">
+
+
+ <cfinclude template="../../../config/settings.cfm">
+ <cfinclude template="../plugin/config.cfm" />
+ <cfinclude template="../ApplicationProxy.cfm">
+
+ <cfif not request.udf.isLoggedOn()>
+ <cfset userBean = application.userManager.read(session.mura.userid)>
+ <cfset user = request.pApp.user.getUser(userBean.getUsername())>
+
+ <cfif user.username eq "">
+ <cfset data = structNew()>
+ <cfset data.username = userBean.getUsername()>
+ <cfset data.password = "password">
+ <cfset data.isAdmin = 1>
+ <cfset request.pApp.user.addUser(argumentCollection=data)>
+ </cfif>
+
+ <cfset request.pSession.user = request.pApp.user.getUser(userBean.getUsername())>
+ <cfset request.pSession.loggedin = true>
+ </cfif>
+
+ <cfreturn true>
+ </cffunction>
+
+
+</cfcomponent>
+
@@ -0,0 +1,19 @@
+<cfsetting enablecfoutputonly=true>
+<!---
+ Name : request.pApp.cfm
+ Author : Raymond Camden
+ Created : September 2, 2004
+ Last Updated : September 2, 2004
+ History :
+ Purpose :
+--->
+
+<!--- include root app --->
+<cfinclude template="../ request.pApp.cfm">
+
+<cfif not request.udf.isLoggedOn()>
+ <cfinclude template="login.cfm">
+ <cfabort>
+</cfif>
+
+<cfsetting enablecfoutputonly=false>
@@ -0,0 +1,27 @@
+<cfsetting enablecfoutputonly=true>
+<!---
+ Name : index.cfm
+ Author : Raymond Camden
+ Created : September 01, 2004
+ Last Updated : February 11, 2006
+ History : Just changed the text a bit.
+ Purpose :
+--->
+<cfimport taglib="../tags/" prefix="tags">
+
+<tags:layout templatename="admin" title="Welcome to the Soundings Administrator">
+
+<cfoutput>
+<p>
+Welcome to Soundings # request.pApp.settings.version#. This administrator allows you to edit all aspects of your surveys. Please select an option from the top menu to begin.
+</p>
+
+<p>
+Please send any bug reports to <a href="mailto:ray@camdenfamily.com">Raymond Camden</a>. For the latest
+news and updates, visit the <a href="http://soundings.riaforge.org">Soundings project page</a>.
+</p>
+</cfoutput>
+
+</tags:layout>
+
+<cfsetting enablecfoutputonly=false>
@@ -0,0 +1,195 @@
+//Contents for menu 1
+var menu1=new Array()
+menu1[0]='<a href="surveys.cfm">Surveys</a>'
+menu1[1]='<a href="questions.cfm">Questions</a>'
+<cfif isBoolean(request.pSession.user.isAdmin) and request.pSession.user.isAdmin>menu1[menu1.length+1]='<a href="questiontypes.cfm">Question Types</a>'</cfif>
+menu1[menu1.length+1]='<a href="templates.cfm">Templates</a>'
+
+//Contents for menu 2
+var menu2=new Array()
+menu2[0]='<a href="password.cfm">Set Password</a>'
+<cfif isBoolean(request.pSession.user.isAdmin) and request.pSession.user.isAdmin>menu2[1]='<a href="users.cfm">Users</a>'</cfif>
+
+
+//Contents for menu 3
+var menu3=new Array()
+menu3[0]='<a href="stats.cfm">Reporting</a>'
+
+
+//Contents for menu 4
+var menu4=new Array()
+menu4[0]='<a href="index.cfm">Admin Home</a>'
+menu4[1]='<a href="../">Soundings Home</a>'
+menu4[2]='<a href="index.cfm?logout=1">Logout</a>'
+
+
+var menuwidth='185px' //default menu width
+var menubgcolor='#407ED8' //menu bgcolor
+var disappeardelay=250 //menu disappear speed onMouseout (in miliseconds)
+var hidemenu_onclick="yes" //hide menu when user clicks within menu?
+
+/////No further editting needed
+
+var ie4=document.all
+var ns6=document.getElementById&&!document.all
+
+if (ie4||ns6)
+document.write('<div id="dropmenudiv" style="visibility:hidden;width:'+menuwidth+';background-color:'+menubgcolor+'" onMouseover="clearhidemenu()" onMouseout="dynamichide(event)"></div>')
+
+function getposOffset(what, offsettype){
+var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
+var parentEl=what.offsetParent;
+while (parentEl!=null){
+totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
+parentEl=parentEl.offsetParent;
+}
+return totaloffset;
+}
+
+
+function showhide(obj, e, visible, hidden, menuwidth){
+if (ie4||ns6)
+dropmenuobj.style.left=dropmenuobj.style.top=-500
+if (menuwidth!=""){
+dropmenuobj.widthobj=dropmenuobj.style
+dropmenuobj.widthobj.width=menuwidth
+}
+if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover")
+obj.visibility=visible
+else if (e.type=="click")
+obj.visibility=hidden
+}
+
+function iecompattest(){
+return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
+}
+
+function clearbrowseredge(obj, whichedge){
+var edgeoffset=0
+if (whichedge=="rightedge"){
+var windowedge=ie4 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
+dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
+if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
+edgeoffset=dropmenuobj.contentmeasure-obj.offsetWidth
+}
+else{
+var topedge=ie4 && !window.opera? iecompattest().scrollTop : window.pageYOffset
+var windowedge=ie4 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
+dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
+if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure){ //move up?
+edgeoffset=dropmenuobj.contentmeasure+obj.offsetHeight
+if ((dropmenuobj.y-topedge)<dropmenuobj.contentmeasure) //up no good either?
+edgeoffset=dropmenuobj.y+obj.offsetHeight-topedge
+}
+}
+return edgeoffset
+}
+
+function populatemenu(what){
+if (ie4||ns6)
+dropmenuobj.innerHTML=what.join("")
+}
+
+
+function dropdownmenu(obj, e, menucontents, menuwidth){
+if (window.event) event.cancelBubble=true
+else if (e.stopPropagation) e.stopPropagation()
+clearhidemenu()
+dropmenuobj=document.getElementById? document.getElementById("dropmenudiv") : dropmenudiv
+populatemenu(menucontents)
+
+if (ie4||ns6){
+showhide(dropmenuobj.style, e, "visible", "hidden", menuwidth)
+dropmenuobj.x=getposOffset(obj, "left")
+dropmenuobj.y=getposOffset(obj, "top")
+dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+"px"
+dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+"px"
+}
+
+return clickreturnvalue()
+}
+
+function clickreturnvalue(){
+if (ie4||ns6) return false
+else return true
+}
+
+function contains_ns6(a, b) {
+while (b.parentNode)
+if ((b = b.parentNode) == a)
+return true;
+return false;
+}
+
+function dynamichide(e){
+if (ie4&&!dropmenuobj.contains(e.toElement))
+delayhidemenu()
+else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
+delayhidemenu()
+}
+
+function hidemenu(e){
+if (typeof dropmenuobj!="undefined"){
+if (ie4||ns6)
+dropmenuobj.style.visibility="hidden"
+}
+}
+
+function delayhidemenu(){
+if (ie4||ns6)
+delayhide=setTimeout("hidemenu()",disappeardelay)
+}
+
+function clearhidemenu(){
+if (typeof delayhide!="undefined")
+clearTimeout(delayhide)
+}
+
+if (hidemenu_onclick=="yes")
+document.onclick=hidemenu
+
+function MM_preloadImages() { //v3.0
+ var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
+ var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
+ if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
+}
+
+function MM_swapImgRestore() { //v3.0
+ var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
+}
+
+function MM_findObj(n, d) { //v4.01
+ var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
+ d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
+ if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
+ for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
+ if(!x && d.getElementById) x=d.getElementById(n); return x;
+}
+
+function MM_swapImage() { //v3.0
+ var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
+ if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
+}
+
+
+function MM_swapImgRestore() { //v3.0
+ var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
+}
+function MM_preloadImages() { //v3.0
+ var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
+ var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
+ if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
+}
+
+function MM_findObj(n, d) { //v4.01
+ var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
+ d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
+ if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
+ for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
+ if(!x && d.getElementById) x=d.getElementById(n); return x;
+}
+
+function MM_swapImage() { //v3.0
+ var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
+ if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
+}
Oops, something went wrong.

0 comments on commit 4a1b6cb

Please sign in to comment.