﻿(function($){$.fn.EasyWidgets=function(settings){InitializeWidgets(settings,false);return true;};$.fn.AddEasyWidget=function(html,placeId,settings){var canAdd=true;var widget=$(html);var s=$.extend(true,$.fn.EasyWidgets.defaults,settings);if($.isFunction(s.callbacks.onAddQuery)){canAdd=s.callbacks.onAddQuery(widget,placeId);}if(canAdd){$('#'+placeId).append(html);if($.isFunction(s.callbacks.onAdd)){s.callbacks.onAdd(widget,placeId);}InitializeWidgets(s,true);return true;}else{return false;}};$.fn.DisableEasyWidgets=function(settings){var canDisable=true;var s=$.extend(true,$.fn.EasyWidgets.defaults,settings);if($.isFunction(s.callbacks.onDisableQuery)){canDisable=s.callbacks.onDisableQuery();}if(canDisable){$(s.selectors.places).sortable('disable');$(s.selectors.widget).each(function(){var widget=$(this);if(widget.hasClass(s.options.movable)){widget.find(s.selectors.header).css('cursor','default');}});if($.isFunction(s.callbacks.onDisable)){s.callbacks.onDisable();}SetCookie(s.cookies.disableName,1,s);return true;}else{return false;}};$.fn.EnableEasyWidgets=function(settings){var canEnable=true;var s=$.extend(true,$.fn.EasyWidgets.defaults,settings);if($.isFunction(s.callbacks.onEnableQuery)){canEnable=s.callbacks.onEnableQuery();}if(canEnable){$(s.selectors.places).sortable('enable');$(s.selectors.widget).each(function(){var widget=$(this);if(widget.hasClass(s.options.movable)){widget.find(s.selectors.header).css('cursor','move');}});if($.isFunction(s.callbacks.onEnable)){s.callbacks.onEnable();}if(s.behaviour.useCookies){SetCookie(s.cookies.disableName,0,s);}return true;}else{return false;}};$.fn.HideEasyWidgets=function(settings){var s=$.extend(true,$.fn.EasyWidgets.defaults,settings);$(s.selectors.widget+':visible').each(function(){var canHide=true;var thisWidget=$(this);var thisWidgetId=thisWidget.attr('id');if($.isFunction(s.callbacks.onHideQuery)){canHide=s.callbacks.onHideQuery(thisWidget);}if(canHide){ApplyEffect(thisWidget,s.effects.widgetHide,s.effects.effectDuration,false);if(s.behaviour.useCookies&&thisWidgetId){UpdateCookie(thisWidgetId,s.cookies.closeName,s);}if($.isFunction(s.callbacks.onHide)){s.callbacks.onHide(thisWidget);}}});return true;};$.fn.ShowEasyWidgets=function(settings){var s=$.extend(true,$.fn.EasyWidgets.defaults,settings);$(s.selectors.widget+':hidden').each(function(){var canShow=true;var widget=$(this);var widgetId=widget.attr('id');var haveId=($.trim(widgetId)!='');if($.isFunction(s.callbacks.onShowQuery)){canShow=s.callbacks.onShowQuery(widget);}if(canShow){ApplyEffect(widget,s.effects.widgetShow,s.effects.effectDuration,true);if(haveId&&s.behaviour.useCookies){CleanCookie(widgetId,s.cookies.closeName,s);}if($.isFunction(s.callbacks.onShow)){s.callbacks.onShow(widget);}}});return true;};$.fn.ShowEasyWidget=function(widgetId,settings){var canShow=true;var widget=$('#'+widgetId);if(widget.css('display')=='none'){var s=$.extend(true,$.fn.EasyWidgets.defaults,settings);if($.isFunction(s.callbacks.onShowQuery)){canShow=s.callbacks.onShowQuery(widget);}if(canShow){ApplyEffect(widget,s.effects.widgetShow,s.effects.effectDuration,true);if(s.behaviour.useCookies){CleanCookie(widgetId,s.cookies.closeName,s);}if($.isFunction(s.callbacks.onShow)){s.callbacks.onShow(widget);}return true;}else{return false;}}else{return false;}};$.fn.HideEasyWidget=function(widgetId,settings){var canHide=true;var widget=$('#'+widgetId);if(widget.css('display')!='none'){var s=$.extend(true,$.fn.EasyWidgets.defaults,settings);if($.isFunction(s.callbacks.onHideQuery)){canHide=s.callbacks.onHideQuery(widget);}if(canHide){ApplyEffect(widget,s.effects.widgetHide,s.effects.effectDuration,false);if(s.behaviour.useCookies){UpdateCookie(widgetId,s.cookies.closeName,s);}if($.isFunction(s.callbacks.onHide)){s.callbacks.onHide(widget);}return true;}else{return false;}}else{return false;}};$.fn.EasyWidgets.defaults={behaviour:{dragDelay:100,dragRevert:600,dragOpacity:0.7,useCookies:true},effects:{effectDuration:1000,widgetShow:'slide',widgetHide:'slide',widgetClose:'slide',widgetExtend:'slide',widgetCollapse:'slide',widgetOpenEdit:'slide',widgetCloseEdit:'slide',widgetCancelEdit:'slide'},cookies:{path:'',domain:'',expires:90,secure:false,closeName:'ew-close',disableName:'ew-disable',positionName:'ew-position',collapseName:'ew-collapse'},options:{movable:'movable',editable:'editable',collapse:'collapse',removable:'removable',collapsable:'collapsable',closeConfirm:'closeconfirm'},callbacks:{onAdd:null,onEdit:null,onShow:null,onHide:null,onClose:null,onEnable:null,onExtend:null,onDisable:null,onDragStop:null,onCollapse:null,onAddQuery:null,onEditQuery:null,onShowQuery:null,onHideQuery:null,onCloseQuery:null,onCancelEdit:null,onEnableQuery:null,onExtendQuery:null,onDisableQuery:null,onCollapseQuery:null,onCancelEditQuery:null,onChangePositions:null,onRefreshPositions:null},selectors:{container:'div',widget:'.widget',places:'.widget-place',header:'.widget-header',widgetMenu:'.widget-menu',editbox:'.widget-editbox',content:'.widget-content',closeEdit:'.widget-close-editbox',editLink:'.widget-editlink',closeLink:'.widget-closelink',placeHolder:'widget-placeholder',collapseLink:'.widget-collapselink'},i18n:{editText:'<img src="football3_Images/EditImg.gif" width="46" height="18">',closeText:'<img src="football3_Images/CloseImg.gif" width="17" height="18">',extendText:'<img src="football3_Images/extend.gif" width="17" height="18">',collapseText:'<img src="football3_Images/minimize.gif" width="17" height="18">',cancelEditText:'<img src="football3_Images/EditImg.gif" width="46" height="18">',editTitle:'ویرایش این باکس',closeTitle:'حذف این باکس',confirmMsg:'آیا این باکس حذف شود؟',cancelEditTitle:'انصراف از ویرایش',extendTitle:'گسترش و نمایش این باکس',collapseTitle:'پنهان سازی این باکس'}};function InitializeWidgets(settings,widgetOnDemand){var b=widgetOnDemand;var d=$.fn.EasyWidgets.defaults;var s=$.extend(true,d,settings);$(s.selectors.widget).each(function(){PrepareWidgetBehaviour($(this),b,s);});RepositionedWidgets(s);MakeWidgetsSortables(s);CleanWidgetsCookies(s,b);return true;};function PrepareWidgetBehaviour(widget,widgetOnDemand,settings){var s=settings;var widgetMenu=widget.find(s.selectors.widgetMenu);if(widgetMenu.html()==null){var widgetId=widget.attr('id');var haveId=($.trim(widgetId)!='');widget.find(s.selectors.editbox).hide();if(widgetOnDemand&&haveId&&s.behaviour.useCookies){CleanCookie(widgetId,s.cookies.closeName,s);}if(!widgetOnDemand&&haveId&&s.behaviour.useCookies&&GetCookie(s.cookies.closeName)!=null){var cookieValue=GetCookie(s.cookies.closeName);if(cookieValue.indexOf(widgetId)!= -1){widget.hide();}}var menuWrap='<span class="'+s.selectors.widgetMenu.replace(/\./,'')+'"></span>';widget.find(s.selectors.header).append(menuWrap);widgetMenu=widget.find(s.selectors.widgetMenu);AddWidgetCollapseLink(widget,widgetMenu,s);AddWidgetEditLink(widget,widgetMenu,s);AddWidgetRemoveLink(widget,widgetMenu,s);return true;}else{return false;}};function RepositionedWidgets(settings){var s=settings;var positions='';if($.isFunction(s.callbacks.onRefreshPositions)){positions=s.callbacks.onRefreshPositions();}if(($.trim(positions)=='')&&s.behaviour.useCookies&&GetCookie(s.cookies.positionName)!=null){positions=GetCookie(s.cookies.positionName)}if($.trim(positions)!=''){var places=positions.split('|');var totalPlaces=places.length;for(var i=0;i<totalPlaces;i++){var place=places[i].split('=');if(place.length==2){var placeSel='#'+place[0];var widgets=place[1].split(',');var totalWidgets=widgets.length;for(var j=0;j<totalWidgets;j++){if($.trim(widgets[j])!=''){var widgetSel='#'+widgets[j];$(widgetSel).appendTo(placeSel);}}}}}return true;};function MakeWidgetsSortables(settings){var sortables=GetSortableItems(settings);PrepareSortableHeaders(sortables,settings);PrepareSortablePlaces(sortables,settings);return true;};function GetSortableItems(settings){var fixesSel='';var s=settings;$(s.selectors.widget).each(function(count){if(!$(this).hasClass(s.options.movable)){if(!this.id){this.id='fixed-widget-id-'+count;}if(fixesSel==''){fixesSel+='#'+this.id;}else{fixesSel+=','+'#'+this.id;}}});var notFixes='';if($.trim(fixesSel)==''){notFixes='> '+s.selectors.container;}else{notFixes='> '+s.selectors.container+':not('+fixesSel+')';}return $(notFixes,s.selectors.places);};function PrepareSortableHeaders(sortableItems,settings){var s=settings;sortableItems.find(s.selectors.header).css({cursor:'move'}).mousedown(function(e){var header=$(this);var widget=header.parent();sortableItems.css({width:''});widget.css({width:widget.width()+'px'});}).mouseup(function(){var header=$(this);var widget=header.parent();if(!widget.hasClass('dragging')){widget.css({width:''});}else{$(s.selectors.places).sortable('disable');}});return true;};function PrepareSortablePlaces(sortableItems,settings){var s=settings;$(s.selectors.places).sortable('destroy');$(s.selectors.places).sortable({items:sortableItems,containment:'document',forcePlaceholderSize:true,handle:s.selectors.header,delay:s.behaviour.dragDelay,revert:s.behaviour.dragRevert,opacity:s.behaviour.dragOpacity,connectWith:$(s.selectors.places),placeholder:s.selectors.placeHolder,start:function(e,ui){$(ui.helper).addClass('dragging');return true;},stop:function(e,ui){WidgetsPositionsChange(s);$(ui.item).css({width:''});$(ui.item).removeClass('dragging');$(s.selectors.places).sortable('enable');if($.isFunction(s.callbacks.onDragStop)){s.callbacks.onDragStop(e,ui);}return true;}});if(s.behaviour.useCookies&&(GetCookie(s.cookies.disableName)==1)){$.fn.DisableEasyWidgets(s);}return true;};function WidgetsPositionsChange(settings){var s=settings;var positions='';$(s.selectors.places).each(function(){var widgets='';var place=$(this);var places=place.attr('id')+'=';place.children(s.selectors.widget).each(function(){var widget=this;var widgetId=widget.id;var haveId=($.trim(widgetId)!='');if(haveId){if(widgets==''){widgets+=widgetId;}else{widgets+=','+widgetId;}}});places+=widgets;if(positions==''){positions+=places;}else{positions+='|'+places;}});if($.isFunction(s.callbacks.onChangePositions)){s.callbacks.onChangePositions(positions);}if(s.behaviour.useCookies){if(GetCookie(s.cookies.positionName)!=positions){SetCookie(s.cookies.positionName,positions,s);}}return true;};function AddWidgetCollapseLink(widget,widgetMenu,settings){var s=settings;var link='';var widgetId=widget.attr('id');var haveId=$.trim(widgetId)!='';var content=widget.find(s.selectors.content);if(widget.hasClass(s.options.collapsable)){if(widget.hasClass(s.options.collapse)){link=MenuLink(s.i18n.extendText,s.i18n.extendTitle,s.selectors.collapseLink);content.hide();}else{link=MenuLink(s.i18n.collapseText,s.i18n.collapseTitle,s.selectors.collapseLink);}if(haveId&&s.behaviour.useCookies&&GetCookie(s.cookies.collapseName)!=null){var cookieValue=GetCookie(s.cookies.collapseName);if(cookieValue.indexOf(widgetId)!= -1){link=MenuLink(s.i18n.extendText,s.i18n.extendTitle,s.selectors.collapseLink);content.hide();}}$(link).mousedown(function(e){e.stopPropagation();}).click(function(){var canExtend=true;var canCollapse=true;var link=$(this);var widget=link.parents(s.selectors.widget);var widgetId=widget.attr('id');var haveId=$.trim(widgetId)!='';var content=widget.find(s.selectors.content);var contentVisible=content.css('display')!='none';link.blur();if(contentVisible){if($.isFunction(s.callbacks.onCollapseQuery)){canCollapse=s.callbacks.onCollapseQuery(link,widget);}if(canCollapse){ApplyEffect(content,s.effects.widgetCollapse,s.effects.effectDuration,false);link.html(s.i18n.extendText);link.attr('title',s.i18n.extendTitle);if(s.behaviour.useCookies&&widgetId){UpdateCookie(widgetId,s.cookies.collapseName,s);}if($.isFunction(s.callbacks.onCollapse)){s.callbacks.onCollapse(link,widget);}}}else{if($.isFunction(s.callbacks.onExtendQuery)){canExtend=s.callbacks.onExtendQuery(link,widget);}if(canExtend){link.html(s.i18n.collapseText);link.attr('title',s.i18n.collapseTitle);ApplyEffect(content,s.effects.widgetExtend,s.effects.effectDuration,true);if(haveId&&s.behaviour.useCookies){CleanCookie(widgetId,s.cookies.collapseName,s);}if($.isFunction(s.callbacks.onExtend)){s.callbacks.onExtend(link,widget);}}}return false;}).appendTo(widgetMenu);}return true;};function AddWidgetEditLink(widget,widgetMenu,settings){var s=settings;var link='';if(widget.hasClass(s.options.editable)){link=MenuLink(s.i18n.editText,s.i18n.editTitle,s.selectors.editLink);widget.find(s.selectors.closeEdit).click(function(e){var link=$(this);var widget=link.parents(s.selectors.widget);var editbox=widget.find(s.selectors.editbox);var editLink=widget.find(s.selectors.editLink);link.blur();ApplyEffect(editbox,s.effects.widgetCloseEdit,s.effects.effectDuration,false);editLink.html(s.i18n.editText);editLink.attr('title',s.i18n.editTitle);return false;});$(link).mousedown(function(e){e.stopPropagation();}).click(function(){var link=$(this);var canShow=canHide=true;var widget=link.parents(s.selectors.widget);var editbox=widget.find(s.selectors.editbox);var editboxVisible=editbox.css('display')!='none';link.blur();if(editboxVisible){if($.isFunction(s.callbacks.onCancelEditQuery)){canHide=s.callbacks.onCancelEditQuery(link,widget);}if(canHide){ApplyEffect(editbox,s.effects.widgetCancelEdit,s.effects.effectDuration,false);link.html(s.i18n.editText);link.attr('title',s.i18n.editTitle);if($.isFunction(s.callbacks.onCancelEdit)){s.callbacks.onCancelEdit(link,widget);}}}else{if($.isFunction(s.callbacks.onEditQuery)){canShow=s.callbacks.onEditQuery(link,widget);}if(canShow){link.html(s.i18n.cancelEditText);link.attr('title',s.i18n.cancelEditTitle);ApplyEffect(editbox,s.effects.widgetOpenEdit,s.effects.effectDuration,true);if($.isFunction(s.callbacks.onEdit)){s.callbacks.onEdit(link,widget);}}}return false;}).appendTo(widgetMenu);}return true;};function AddWidgetRemoveLink(widget,widgetMenu,settings){var s=settings;var link='';if(widget.hasClass(s.options.removable)){link=MenuLink(s.i18n.closeText,s.i18n.closeTitle,s.selectors.closeLink);$(link).mousedown(function(e){e.stopPropagation();}).click(function(){var link=$(this);var canRemove=true;var widget=link.parents(s.selectors.widget);var widgetId=widget.attr('id');var haveId=($.trim(widgetId)!='');link.blur();if($.isFunction(s.callbacks.onCloseQuery)){canRemove=s.callbacks.onCloseQuery(link,widget);}if(canRemove){if(confirm(s.i18n.confirmMsg)){$("input[value="+widgetId+"]").removeAttr("checked");if(haveId&&s.behaviour.useCookies){UpdateCookie(widgetId,s.cookies.closeName,s);var box=new Array();$("input[name=myoptions[]]").each(function(){if($(this).is(':checked')){$('#'+$(this).val()).slideDown("slow");box.push($(this).val());$.cookie('hpOptions',box,{expires:30});}else{$('#'+$(this).val()).slideUp("slow");}});}ApplyEffect(widget,s.effects.widgetClose,s.effects.effectDuration,false);if($.isFunction(s.callbacks.onClose)){s.callbacks.onClose(link,widget);}}}return false;}).appendTo(widgetMenu);}return true;};function CleanWidgetsCookies(settings,widgetOnDemand){var s=settings;var cleanCookies= !widgetOnDemand&&s.behaviour.useCookies&&(Math.ceil(Math.random()*3)==1);if(cleanCookies){var i=j=0;var cookies=new Array(s.cookies.closeName,s.cookies.collapseName);var cookiesLen=cookies.length;var widgetsIds=new Array();$(s.selectors.widget).each(function(count){var widgetId=$(this).attr('id');if($.trim(widgetId)!=''){widgetsIds[count]=widgetId;}});for(i=0;i<cookiesLen;i++){if(GetCookie(cookies[i])){var widgetId='';var cleanValue='';var storedValue=GetCookie(cookies[i]).split(',');var storedWidgets=storedValue.length;for(j=0;j<storedWidgets;j++){widgetId=$.trim(storedValue[j]);if($.inArray(widgetId,widgetsIds)!= -1){if($.trim(cleanValue)==''){cleanValue+=widgetId;}else{cleanValue+=','+widgetId;}}}SetCookie(cookies[i],cleanValue,s);}}}return true;};function GetCookie(name){var result=null;if(document.cookie&&$.trim(document.cookie)!=''){var cookies=document.cookie.split(';');var cookiesLen=cookies.length;if(cookiesLen>0){for(var i=0;i<cookiesLen;i++){var cookie=$.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){result=decodeURIComponent(cookie.substring(name.length+1));break;}}}}return result;};function SetCookie(name,value,settings){var s=settings;var expires='';var nType='number';if(s.cookies.expires&&(typeof s.cookies.expires==nType)||s.cookies.expires.toUTCString){var date=null;if(typeof s.cookies.expires==nType){date=new Date();date.setTime(date.getTime()+(s.cookies.expires*24*60*60*1000));}else{date=s.cookies.expires;}expires='; expires='+date.toUTCString();}var path=s.cookies.path?'; path='+s.cookies.path:'';var domain=s.cookies.domain?'; domain='+s.cookies.domain:'';var secure=s.cookies.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('');return true;};function CleanCookie(widgetId,cookieName,settings){var value=GetCookie(cookieName);if(value!=null){if(value.indexOf(widgetId)!= -1){value=value.replace(','+widgetId,'');value=value.replace(widgetId+',','');value=value.replace(widgetId,'');}SetCookie(cookieName,value,settings);}return true;};function UpdateCookie(widgetId,cookieName,settings){var value=GetCookie(cookieName);if(value==null){value=widgetId;}else if(value.indexOf(widgetId)== -1){value=value+','+widgetId;}SetCookie(cookieName,value,settings);return true;};function MenuLink(text,title,aClass){var l='<a href="#" title="TITLE" class="CLASS" style="margin-right:2px;float:left;">TEXT</a>';l=l.replace(/TEXT/g,text);l=l.replace(/TITLE/g,title);l=l.replace(/CLASS/g,aClass.replace(/\./,''));return l;};function ApplyEffect(jqObj,effect,duration,show){var n='none',f='fade',s='slide';if(!show){if(effect==n){jqObj.hide();}else if(effect==f){jqObj.fadeOut(duration);}else if(effect==s){jqObj.slideUp(duration);}}else{if(effect==n){jqObj.show();}else if(effect==f){jqObj.fadeIn(duration);}else if(effect==s){jqObj.slideDown(duration);}}return true;}})(jQuery);
