/** * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/ * * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License: * http://www.opensource.org/licenses/mit-license.php * */ if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="";_19+="";var _1d=this.getParams();for(var key in _1d){_19+="";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="";}_19+="";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.majorfv.major){return true;}if(this.minorfv.minor){return true;}if(this.rev=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject; // prototype $ function $p() { var elements = new Array(); for (var i = 0; i < arguments.length; i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element); if (arguments.length == 1) return element; elements.push(element); } return elements; } // from http://www.dustindiaz.com/rock-solid-addevent/ function addEvent( obj, type, fn ) { if (obj.addEventListener) { obj.addEventListener( type, fn, false ); EventCache.add(obj, type, fn); } else if (obj.attachEvent) { obj["e"+type+fn] = fn; obj[type+fn] = function() { obj["e"+type+fn]( window.event ); } obj.attachEvent( "on"+type, obj[type+fn] ); EventCache.add(obj, type, fn); } else { obj["on"+type] = obj["e"+type+fn]; } } var EventCache = function(){ var listEvents = []; return { listEvents : listEvents, add : function(node, sEventName, fHandler){ listEvents.push(arguments); }, flush : function(){ var i, item; for(i = listEvents.length - 1; i >= 0; i = i - 1){ item = listEvents[i]; if(item[0].removeEventListener){ item[0].removeEventListener(item[1], item[2], item[3]); }; if(item[1].substring(0, 2) != "on"){ item[1] = "on" + item[1]; }; if(item[0].detachEvent){ item[0].detachEvent(item[1], item[2]); }; item[0][item[1]] = null; }; } }; }(); if (document.all) { addEvent(window,'unload',EventCache.flush); } function imgFit (img, maxW) { if (typeof(img.naturalHeight) == 'undefined') { img.naturalHeight = img.height; img.naturalWidth = img.width; } //alert(img.src+'\n\n'+'H: '+img.height+' natH: '+img.naturalHeight+'\n'+'W: '+img.width+' natW: '+img.naturalWidth+' maxW: '+maxW); if (img.width > maxW) { img.height = Math.round((maxW/img.width)*img.height); img.width = maxW; img.title = 'Click image to view full size'; img.style.cursor = 'move'; return false; } else if (img.width == maxW && img.width < img.naturalWidth) { img.height = img.naturalHeight; img.width = img.naturalWidth; img.title = 'Click to fit in the browser window'; return false; } else { return true; } } function toggle_block (id) { var el = document.getElementById(id); el.style.display = (el.style.display == 'none') ? '' : 'none'; } function toggle_disabled (id, val) { document.getElementById(id).disabled = (val) ? 0 : 1; } function rand (min, max) { return min + Math.floor((max - min + 1) * Math.random()); } // // Cookie functions [based on ???] // /** * name Name of the cookie * value Value of the cookie * [days] Number of days to remain active (default: end of current session) * [path] Path where the cookie is valid (default: path of calling document) * [domain] Domain where the cookie is valid * (default: domain of calling document) * [secure] Boolean value indicating if the cookie transmission requires a * secure transmission */ function setCookie (name, value, days, path, domain, secure) { if (days != 'SESSION') { var date = new Date(); days = days || 365; date.setTime(date.getTime() + days*24*60*60*1000); var expires = date.toGMTString(); } else { var expires = ''; } document.cookie = name +'='+ escape(value) + ((expires) ? '; expires='+ expires : '') + ((path) ? '; path='+ path : ((cookiePath) ? '; path='+ cookiePath : '')) + ((domain) ? '; domain='+ domain : ((cookieDomain) ? '; domain='+ cookieDomain : '')) + ((secure) ? '; secure' : ((cookieSecure) ? '; secure' : '')); } /** * Returns a string containing value of specified cookie, * or null if cookie does not exist. */ function getCookie (name) { var c, RE = new RegExp('(^|;)\\s*'+ name +'\\s*=\\s*([^\\s;]+)', 'g'); return (c = RE.exec(document.cookie)) ? c[2] : null; } /** * name name of the cookie * [path] path of the cookie (must be same as path used to create cookie) * [domain] domain of the cookie (must be same as domain used to create cookie) */ function deleteCookie (name, path, domain) { setCookie(name, '', -1, path, domain); } // Simple Javascript Browser/OS detection (based on "Harald Hope, Tapio Markula, http://techpatterns.com ver 2.0.1") var ua = navigator.userAgent; var os_win = ( navigator.appVersion.indexOf( 'Win' ) != -1 ); var os_mac = ( navigator.appVersion.indexOf( 'Mac' ) != -1 ); var os_lin = ( ua.indexOf( 'Linux' ) != -1 ); var is_opera = ( ua.indexOf( 'Opera' ) != -1 ); var is_konq = ( ua.indexOf( 'Konqueror' ) != -1 ); var is_saf = ( ua.indexOf( 'Safari' ) != -1 ); var is_moz = ( ua.indexOf( 'Gecko' ) != -1 && !is_saf && !is_konq); var is_ie = ( document.all && !is_opera ); var is_ie4 = ( is_ie && !document.getElementById ); // ie5x tests only for functionality // Opera will register true in this test if set to identify as IE 5 var is_ie5x = ( document.all && document.getElementById ); var os_ie5mac = ( os_mac && is_ie5x ); var os_ie5xwin = ( os_win && is_ie5x ); // Copy text to clipboard. Originally got from decompiled `php_manual_en.chm`. function ie_copyTextToClipboard (fromNode) { var txt = document.body.createTextRange(); txt.moveToElementText(fromNode); return txt.execCommand("Copy"); } // Clickable LABELs in IE // based on http://web.tampabay.rr.com/bmerkey/examples/clickable-labels.html function ie6_make_clickable_labels () { var labels = document.getElementsByTagName("label"); for (var i=0, len=labels.length; i'); fixSqlLog(); } if (response.update_ids) { for (id in response.update_ids) { $('#'+id).html( response.update_ids[id] ); } } if (response.prompt_password) { var user_password = prompt('Please enter your password (for mod/admin session)', ''); if (user_password) { var req = ajax.request[action]; req.user_password = user_password; ajax.exec(req); } else { ajax.clearActionState(action); ajax.showErrorMsg('Wrong password'); } } else if (response.prompt_confirm) { if (window.confirm(response.confirm_msg)) { var req = ajax.request[action]; req.confirmed = 1; ajax.exec(req); } else { ajax.clearActionState(action); } } else if (response.error_code) { ajax.showErrorMsg(response.error_msg); $('.loading-1').removeClass('loading-1').html('error'); } else { ajax.callback[action](response); ajax.clearActionState(action); } }, error: function(xml, desc) { }, clearActionState: function(action){ ajax.state[action] = ajax.request[action] = ''; }, showErrorMsg: function(msg){ alert(msg); }, callInitFn: function(event) { event.stopPropagation(); var params = ajax.params[$(this).attr('id')]; var action = params.action; if (ajax.state[action] == 'readyToSubmit' || ajax.state[action] == 'error') { return false; } else { ajax.state[action] = 'readyToSubmit'; } ajax.init[action](params); }, setStatusBoxPosition: function($el) { var newTop = $(document).scrollTop(); var rCorner = $(document).scrollLeft() + $(window).width() - ($.browser.opera ? 14 : 8); var newLeft = Math.max(0, rCorner - $el.width()); $el.css({ top: newTop, left: newLeft }); }, makeEditable: function(rootElementId, editableType) { var $root = $('#'+rootElementId); var $editable = $('.editable', $root); var inputsHtml = $('#editable-tpl-'+editableType).html(); $editable.hide().after(inputsHtml); var $inputs = $('.editable-inputs', $root); if (editableType == 'input' || editableType == 'textarea') { $('.editable-value', $inputs).val( $.trim($editable.text()) ); } $('input.editable-submit', $inputs).click(function(){ var params = ajax.params[rootElementId]; var $val = $('.editable-value', '#'+rootElementId); params.value = ($val.size() == 1) ? $val.val() : $val.filter('[checked]').val(); params.submit = true; ajax.init[params.action](params); }); $('input.editable-cancel', $inputs).click(function(){ ajax.restoreEditable(rootElementId); }); $inputs.show().find('.editable-value').focus(); $root.removeClass('editable-container'); }, restoreEditable: function(rootElementId, newValue) { var $root = $('#'+rootElementId); var $editable = $('.editable', $root); $('.editable-inputs', $root).remove(); if (newValue) { $editable.text(newValue); } $editable.show(); ajax.clearActionState( ajax.params[rootElementId].action ); ajax.params[rootElementId].submit = false; $root.addClass('editable-container'); } }; $(document).ready(function(){ // Setup ajax-loading box $("#ajax-loading").ajaxStart(function(){ $("#ajax-error").hide(); $(this).show(); ajax.setStatusBoxPosition($(this)); }); $("#ajax-loading").ajaxStop(function(){ $(this).hide(); }); // Setup ajax-error box $("#ajax-error").ajaxError(function(req, xml){ var status = xml.status; var text = xml.statusText; if (status == 200) { status = ''; text = 'invalid data format'; } $(this).html( "Ajax error in: "+ ajax.url +"
"+ status +" "+ text +"" ).show(); ajax.setStatusBoxPosition($(this)); }); // Bind ajax events $('var.ajax-params').each(function(){ var params = $.evalJSON( $(this).html() ); params.event = params.event || 'dblclick'; ajax.params[params.id] = params; $("#"+params.id).bind(params.event, ajax.callInitFn); if (params.event == 'click' || params.event == 'dblclick') { $("#"+params.id).addClass('editable-container'); } }); });