/** * Javascript code to be used with extension SemanticForms for popup forms. * * @author Stephan Gambke * */ // initialise jQuery( function() { // register eventhandlers on 'edit' links and buttons // register formlink with link jQuery('a.popupformlink').click(function(evt){ return ext.popupform.handlePopupFormLink( this.getAttribute('href'), this ); }); // register formlink with button jQuery( 'form.popupformlink' ).submit(function(evt){ return ext.popupform.handlePopupFormLink( this.getAttribute( 'action' ), this ); }); // register forminput jQuery( 'form.popupforminput' ).submit(function(evt){ return ext.popupform.handlePopupFormInput( this.getAttribute( 'action' ), this ); }); }); // create ext if it does not exist yet if ( typeof( window.ext ) === "undefined" ) { window.ext = {}; } window.ext.popupform = new function() { var wrapper; var background; var container; var innerContainer; var iframe; var content; var waitIndicator; var instance = 0; var doc; var brokenBrowser, brokenChrome; var padding = 20; function handlePopupFormInput( ptarget, elem ) { showForm(); iframe.one( 'load', function(){ // attach event handler to iframe iframe.bind( 'load', handleLoadFrame ); return false; }); elem.target = 'popupform-iframe' + instance; return true; } function handlePopupFormLink( ptarget, elem ) { showForm(); // attach event handler to iframe iframe.bind( 'load', handleLoadFrame ); if ( elem.tagName == 'FORM' ) { elem.target = 'popupform-iframe' + instance; return true; } else { var delim = ptarget.indexOf( '?' ); var form = document.createElement("form"); form.target = 'popupform-iframe' + instance; // Do we have parameters? if ( delim > 0 ) { form.action = ptarget.substr( 0, delim ); var params = String( ptarget.substr( delim + 1 ) ).split("&"); for ( var i = 0; i < params.length; ++i ) { var input = document.createElement("input"); var param = String( params[i] ).split('='); input.type = 'hidden'; input.name = decodeURIComponent( param[0] ); input.value = decodeURIComponent( param[1] ); form.appendChild( input ); } } else { form.action = ptarget; } document.getElementsByTagName('body')[0].appendChild(form); form.submit(); document.getElementsByTagName('body')[0].removeChild(form); return false; } } function showForm() { instance++; brokenChrome = ( navigator.userAgent.indexOf("Chrome") >= 0 && navigator.platform.indexOf("Linux x86_64") >= 0 ); brokenBrowser= jQuery.browser.msie || brokenChrome; var maxZIndex = 0; jQuery("*").each(function() { var curr = parseInt( jQuery( this ).css( "z-index" ) ); maxZIndex = curr > maxZIndex ? curr : maxZIndex; }); wrapper = jQuery( "