
var DynaWidgetFct=new DynaWidgetFct();DynaWidgetFct.closeFxTime=300;function DynaWidgetFct()
{this.addWidgetPlaceholder=function(gridId,widgetId,targetColumn)
{if(jQuery("div.dynaWidgetGrid[id$="+gridId+"] div[id$="+widgetId+"]").size()==0)
{var columnCount=jQuery("div.dynaWidgetGrid[id$="+gridId+"] div.gridColumn[id^=gridColumn]").size();var targetColumn=1;var lowestWidgetCount=-1;for(col=1;col<=columnCount;col++)
{var widgetCount=jQuery("div.dynaWidgetGrid[id$="+gridId+"] div.gridColumn[id=gridColumn"+col+"] div.dynaWidget").size();if(lowestWidgetCount==-1||widgetCount<lowestWidgetCount)
{lowestWidgetCount=widgetCount;targetColumn=col;}}
var grid=jQuery("div.dynaWidgetGrid[id$="+gridId+"]");var gridColumn=grid.find("div.gridColumn[id=gridColumn"+targetColumn+"]");gridColumn.append("<div id=\""+grid.attr('id')+":"+widgetId+"\" class=\"dynaWidget\"></div>");}}
this.initWidget=function(gridId,widgetId,isSortable,isStateAware)
{if(navigator.userAgent.indexOf("Firefox/3.0")>-1||navigator.userAgent.indexOf("Firefox/3.1")>-1||navigator.userAgent.indexOf("Firefox/3.2")>-1||navigator.userAgent.indexOf("Firefox/3.3")>-1||navigator.userAgent.indexOf("Firefox/3.4")>-1||navigator.userAgent.indexOf("Firefox/3.5")>-1||navigator.userAgent.indexOf("Firefox/2.0")>-1||navigator.userAgent.indexOf("Opera/9")>-1)
{var divToRewrite=jQuery("div[id$="+gridId+"] div[id^=gridColumn] div[id$="+widgetId+"]");if(divToRewrite.get(0).localName=='div')
{var divToRewriteHtml=divToRewrite.html();divToRewriteHtml=divToRewriteHtml.replace(/jQuery\(document\).ready\(function\(\)\{.*\}/g,"");divToRewrite.replaceWith("<div id=\""+divToRewrite.attr("id")+"\" class=\"dynaWidget\">"+divToRewriteHtml+"</div>");}}
var widget=jQuery("div.dynaWidgetGrid[id$="+gridId+"] div.gridColumn div.dynaWidget[id$="+widgetId+"]");prepareWidget(widget);if(isSortable)
initSortable(gridId,isStateAware);}
this.initWidgets=function(gridId,isSortable,isStateAware,opacityOnDrag)
{if(navigator.userAgent.indexOf("Firefox/3.0")>-1||navigator.userAgent.indexOf("Firefox/3.1")>-1||navigator.userAgent.indexOf("Firefox/3.2")>-1||navigator.userAgent.indexOf("Firefox/3.3")>-1||navigator.userAgent.indexOf("Firefox/3.4")>-1||navigator.userAgent.indexOf("Firefox/3.5")>-1||navigator.userAgent.indexOf("Firefox/2.0")>-1||navigator.userAgent.indexOf("Opera/9")>-1)
{var divsToRewrite=jQuery("div[id$="+gridId+"] div[id^=gridColumn]");if(divsToRewrite.get(0).localName=='div')
for(var i=0;i<divsToRewrite.size();i++)
{var divToRewrite=jQuery(divsToRewrite.get(i));var divToRewriteHtml=divToRewrite.html();divToRewriteHtml=divToRewriteHtml.replace(/jQuery\(document\).ready\(function\(\)\{.*\}/g,"");divToRewrite.replaceWith("<div id=\""+divToRewrite.attr("id")+"\" class=\"gridColumn\" style=\""+divToRewrite.attr("style")+"\">"+divToRewriteHtml+"</div>");}}
var widgets=jQuery("div.dynaWidgetGrid[id$="+gridId+"] div.gridColumn div.dynaWidget");for(i=0;i<widgets.size();i++)
prepareWidget(jQuery(widgets[i]));if(widgets.size()>0&&isSortable)
initSortable(gridId,isStateAware,opacityOnDrag);}
function prepareWidget(widget)
{widget.hover(function()
{jQuery(this).addClass("dynaWidgetOver");},function()
{jQuery(this).removeClass("dynaWidgetOver");});widget.find("div.commands").hover(function()
{jQuery(this).parents("div.gridColumn").sortable("option","disabled",true);},function()
{jQuery(this).parents("div.gridColumn").sortable("option","disabled",false);});widget.find("a.toggle").mouseup(function()
{jQuery(this).parents("div.widgetContent").find("div.widgetContentView").slideToggle("normal");});widget.find("a.close").mouseup(function()
{jQuery(this).parents("div.dynaWidget").hide(DynaWidgetFct.closeFxTime,function(){jQuery(this).remove();});});widget.find("a.edit").click(function()
{var widgetContent=jQuery(this).parents("div.widgetContent");widgetContent.find("div.widgetContentView").toggle();widgetContent.find("div.widgetContentEdit").toggle();});widget.find("div.widgetContentEdit").hide();}
function initSortable(gridId,isStateAware,opacityOnDrag)
{var sortableSelector=jQuery("div.dynaWidgetGrid[id$="+gridId+"] div.gridColumn");if(typeof(opacityOnDrag)=="undefined")
{opacityOnDrag=sortableSelector.sortable("option","opacity");}
sortableSelector.sortable({dropOnEmpty:true,items:"div.dynaWidget:not(.fixed)",connectWith:["div.gridColumn"],placeholder:"placeholder",forcePlaceholderSize:true,handle:"div.widgetHeader",opacity:opacityOnDrag,stop:function(e,ui)
{if(isStateAware)
{var widget=ui.item;var widgetId=widget.attr("id");var idArr=widgetId.split(":");if(idArr.length==2)
widgetId=widgetId.split(":")[1];else
widgetId=widgetId.split(":")[2];var xPos=widget.parent().attr("id").replace("gridColumn","");var yPos=widget.prevAll().size()+1
var newPosition=xPos+"-"+yPos;eval("ajaxWidgetAction_"+gridId+"_"+widgetId+"(\"position_action="+widgetId+"_"+newPosition+"\")");}}});}}
