/*
 * Producer's Web
 * Copyright(c) 2006, Roadsend.
 */

var SP_activeSiteID=SP_activeSiteID?SP_activeSiteID:'pweb';
try{document.execCommand("BackgroundImageCache",false,true);}catch(err){}
var SiteManager={_MessageTarget:null,_MessageTargetId:'Messages',logger:null,configChangeTarget:"/r/"+SP_activeSiteID+"/p/myproweb/config",log:function(s){if(this.logger!==null)YAHOO.log(s);},error:function(s){this.log(s);},sendConfigChange:function(type,details){var url=this.configChangeTarget+'?type='+type;for(key in details){url+='&'+key+'='+details[key];}
var callback={success:function(){},failure:function(){},argument:{}};SiteManager.log('Sending '+type+' config change to the server');YAHOO.util.Connect.asyncRequest('GET',url,callback);}};SiteManager.Dom={openWindow:function(url,options){window.open(url);}}
SiteManager.Css={getSizeInt:function(pxVal){var retVal=pxVal;if(typeof(retVal)=='string')retVal=(retVal.replace(/px/i,'')*1);return retVal;}}
SiteManager.Util={getTimestamp:function(){return new Date().getTime();}}
SiteManager.toggleWiki=function(nodeid,button,makeWikiText,removeWikiText){var node=document.getElementById(nodeid);if(node['wikified']){SiteManager.unwikify(nodeid);if(button&&button.nodeName&&button.nodeName.toLowerCase()=='input')button.value=makeWikiText;else if(button&&button.nodeName)button.innerHTML=makeWikiText;}else{SiteManager.wikify(nodeid);if(button&&button.nodeName&&button.nodeName.toLowerCase()=='input')button.value=removeWikiText;else if(button&&button.nodeName)button.innerHTML=removeWikiText;}}
SiteManager.wikify=function(nodeid){var node=document.getElementById(nodeid);if(node&&window.wikiWords&&window.wikiWords.length){var contents=node.innerHTML;var parts,word,re,href,linkText;for(var i=0;i<wikiWords.length;i++){word=href='';if(wikiWords[i].indexOf(':')>0){parts=wikiWords[i].split(':');word=parts[0];
for(var j = 1; j < parts.length; j ++) { if(j > 1) href += ':';if ((parts[j].indexOf("r/pweb/")>0) && SP_activeSiteID != "pweb") {parts[j] = parts[j].replace('r/pweb/','r/'+SP_activeSiteID+'/');}href += parts[j];
}}else{word=wikiWords[i];href='/r/'+SP_activeSiteID+'/p/pweb/searchResults?csvT='+escape(word)+'&x=0&y=0';}
re='([^<\w(?:=")/])('+word+'\\w*)','ig';re=new RegExp(re);linkText='<a class="wikiLink" href="'+href+'">$2</a>';contents=contents.replace(re,'$1'+linkText);}
node.innerHTML=contents;node.wikified=true;}}
SiteManager.unwikify=function(nodeid){var node=document.getElementById(nodeid);if(node&&window.wikiWords&&window.wikiWords.length){var as=node.getElementsByTagName('a');for(var i=as.length-1;i>=0;i--){if(as[i].className=='wikiLink'){text=document.createTextNode(as[i].innerHTML);as[i].parentNode.insertBefore(text,as[i]);as[i].parentNode.removeChild(as[i]);}}
node.innerHTML=node.innerHTML.replace(/<a class="wikiLink" href="[^"]+">$1<\/a>/ig,'$1');node.wikified=false;}}
Array.prototype.contains=function(val){var retVal=false;for(var i=0;i<this.length;i++){if(this[i]==val){retVal=true;break;}}
return retVal;}
if(!window.console)window.console={log:function(s){},error:function(s){}};

SiteManager.DataGrouper=function(table,data,initialFilter){if(arguments.length>0){this._table=table;this._originalResponse=data;this._initialFilter=initialFilter;}};SiteManager.DataGrouper.prototype={_initialFilter:{},_currentFilter:{},_originalResponse:null,_currentFilteredData:null,_getDateRange:function(filter){var retVal={};if(filter.dateColumn){retVal={column:filter.dateColumn};retVal['start']=(filter.startDate)?new Date(filter.startDate).getTime():null,retVal['end']=(filter.endDate)?new Date(filter.endDate).getTime():null}
return retVal;},_getIsInDateRange:function(range,row){var retVal=true;if(range!=null){var val=new Date(row[range.column]).getTime();retVal=((range.start==null||val>=range.start)&&(range.end==null||val<=range.end));}
return retVal;},_group:function(data,filter){var retVal={};var groupKey=(filter.groupBy)?filter.groupBy.join(','):'';if(data.cache==null||data.cache.groupKey!=groupKey){retVal.items={};retVal.src={};retVal.belowThreshold=(data.length>0)?this._clone(data[0],filter.sumBy):null;retVal.belowThresholdSrc=[];retVal.groupedBy=filter.groupBy;retVal.subKeys={};var datum,subFilter,key,subKey,index,totalSubItems;for(var i=0;i<data.length;i++){datum=data[i];if((typeof filter.subFilter)=='function')subFilter=filter.subFilter(datum,filter);else if(filter.subFilter)subFilter=filter.subFilter;else subFilter=null;key=this._getGroupKey(datum,filter.groupBy);if(retVal.items[key]==null){retVal.subKeys[key]={};retVal.subKeys[key].items={};retVal.subKeys[key].count=0;retVal.items[key]=this._clone(datum,filter.sumBy);retVal.src[key]=[];}
retVal.src[key].push(datum);this._addVals(retVal.items[key],datum,filter.sumBy);totalSubItems=filter.totalSubItems!=null&&filter.totalSubItems!=false&&subFilter!=null&&subFilter.sumBy!=null;if(subFilter&&subFilter.groupBy){subKey=this._getGroupKey(datum,subFilter.groupBy);if(!retVal.subKeys[key].items[subKey]){retVal.subKeys[key].items[subKey]=(totalSubItems)?this._clone(datum,subFilter.sumBy):{};retVal.subKeys[key].count++;}
if(totalSubItems)this._addVals(retVal.subKeys[key].items[subKey],datum,subFilter.sumBy);}}
var sortBy=filter.sortBy;if(sortBy){this.sort(retVal,sortBy);}
var threshold=(filter.itemThreshold)?filter.itemThreshold:0;var maxItems=filter.thresholdCount;var thresholdIgnoredColumn=filter.thresholdIgnoreColumn;var thresholdIgnoredValues=(filter.thresholdIgnoreValues)?filter.thresholdIgnoreValues:[];var needToAggregate,aggregateItem,j;if(threshold>0||maxItems){var counter=0;for(key in retVal.items){if(!thresholdIgnoredColumn||!thresholdIgnoredValues.contains(retVal.items[key][thresholdIgnoredColumn])){counter++;needToAggregate=(maxItems&&counter>maxItems);if(!needToAggregate){for(j=0;j<filter.sumBy.length;j++){if((retVal.items[key][filter.sumBy[j]]*1)>threshold){atThreshold=true;break;}}}
if(needToAggregate){aggregateItem=retVal.items[key];retVal.items[key]=null;delete retVal.items[key];retVal.belowThresholdSrc.push(aggregateItem);this._addVals(retVal.belowThreshold,aggregateItem,filter.sumBy);}}}}
if(retVal.belowThresholdSrc.length==0){retVal.belowThreshold==null;}
data.cache=retVal;data.cache.groupKey=groupKey;}else{retVal=data.cache;}
var keepDetailsFor=(filter['keepDetailsFor'])?filter.keepDetailsFor:null;if(keepDetailsFor!=null&&filter.subFilter){var keepDetailsForKey=this._getGroupKey(keepDetailsFor,filter.groupBy);if(retVal.keepDetailsForKey!=keepDetailsForKey){retVal.keepDetailsForKey=keepDetailsForKey;var recurseItem=retVal.items[keepDetailsForKey];var recurseSubFilter=((typeof filter.subFilter)=='function')?filter.subFilter(recurseItem,filter):filter.subFilter;if(retVal.src[keepDetailsForKey]!=null)
retVal.details=this._group(retVal.src[keepDetailsForKey],recurseSubFilter);else if(retVal.belowThresholdSrc.length>0)
retVal.details=this._group(retVal.belowThresholdSrc,recurseSubFilter);}}else{retVal.keepDetailsForKey=null;retVal.details=null;}
return retVal;},_addVals:function(dest,src,cols){for(var i=0;i<cols.length;i++){dest[cols[i]]+=(src[cols[i]]*1);}},_clone:function(obj,sumBy){var retVal={};var val,summable,j;for(var i in obj){summable=false;for(j=0;j<sumBy.length;j++){if(sumBy[j]==i){summable=true;break;}}
retVal[i]=(summable)?0:obj[i];}
return retVal;},_getGroupKey:function(data,keys){var mergedKey=[];var currKey,val;for(var i=0;i<keys.length;i++){currKey=keys[i];var val=(data[currKey])?data[currKey]:'blank';mergedKey.push('"'+currKey.replace('"','&quot;')+'"="'+val.replace('"','&quot;')+'"');}
var retVal=mergedKey.join(',');return retVal;},_getColumnFromGroupKey:function(key){var parts=key.split(',');for(var i=0;i<parts.length;i++)parts[i]=parts[i].replace(/"([^"]*)"/,"$1").replace('&quot;','"');return parts;},_getDateFilteredData:function(filter){var data=[];var dateRange=this._getDateRange(filter);var dateRangeKey=dateRange.start+dateRange.end;if(this._currentFilteredData==null||this._currentFilteredData.dateRangeKey!=dateRangeKey){var inDateRange;for(o in this._originalResponse){inDateRange=this._getIsInDateRange(dateRange,this._originalResponse[o]);if(inDateRange)data.push(this._originalResponse[o]);}
this._currentFilteredData=data;this._currentFilteredData.dateRangeKey=dateRangeKey;}else{data=this._currentFilteredData;}
return data;},_getFilteredRecordSet:function(filter){var data=this._getDateFilteredData(filter);data=this._group(data,filter);this._currentFilter=filter;var retVal=[];var key,currItem;for(key in data.items){currItem=data.items[key];currItem.subKeyCount=data.subKeys[key].count;if(filter.totalSubItems)currItem.subKeyTotals=data.subKeys[key].items;retVal.push(currItem);if(key==data.keepDetailsForKey){for(detailKey in data.details.items){data.details.items[detailKey].grouping='subgroup';retVal.push(data.details.items[detailKey]);}
if(data.details.belowThreshold!=null){var found=false;for(i in filter.sumBy){if(data.details.belowThreshold[filter.sumBy[i]]){found=true;break;}}
if(found){data.details.belowThreshold.grouping='belowThreshold';retVal.push(data.details.belowThreshold);}}}}
if(data.belowThreshold!=null){var found=false;for(i in filter.sumBy){if(data.belowThreshold[filter.sumBy[i]]){found=true;break;}}
if(found){data.belowThreshold.grouping='belowThreshold';retVal.push(data.belowThreshold);if(data.keepDetailsForKey&&data.keepDetailsForKey.indexOf('Other Offers')>0){for(detailKey in data.details.items){data.details.items[detailKey].grouping='subgroup';retVal.push(data.details.items[detailKey]);}
if(data.details.belowThreshold!=null){var found=false;for(i in filter.sumBy){if(data.details.belowThreshold[filter.sumBy[i]]){found=true;break;}}
if(found){data.details.belowThreshold.grouping='belowThreshold';retVal.push(data.details.belowThreshold);}}}}}
if(filter.onAfterFilter)filter.onAfterFilter(retVal);if(retVal.length>0){var finalFilter=[];var totalBy=filter.totalBy;if(totalBy==null)totalBy=filter.sumBy;for(var i=0;i<totalBy.length;i++){finalFilter.push(totalBy[i]);}
finalFilter.push('subKeyCount');var totalRow=(retVal.length>0)?this._clone(retVal[0],finalFilter):null;for(var i=0;i<retVal.length;i++){if(retVal[i].grouping!='subgroup')
this._addVals(totalRow,retVal[i],finalFilter);}
totalRow.adTypeTitle='Totals';totalRow.grouping='totals';retVal.push(totalRow);}
return retVal;},addData:function(data){if(this._originalResponse==null)this._originalResponse=data;else{for(var i=0;i<data.length;i++){this._originalResponse.push(data[i]);}}
this._currentFilteredData=null;},filter:function(filter){var table=this._table.getTable();var cls=table.parentNode.id;var newSet=this._getFilteredRecordSet(filter);var oldSet=this._table.getRecordSet();var refreshedRecords=oldSet.replace(newSet);var finalSet=this._table.getRecordSet();var nodes=table.getElementsByTagName('tr');for(var i=nodes.length-1;i>=0;i--){if(nodes[i].parentNode.nodeName.toLowerCase()!='thead'&&nodes[i]!=this._table._elMsgCell)nodes[i].parentNode.removeChild(nodes[i]);}
var finalRecords=finalSet.getRecords();this._table.replaceRows(finalRecords);if(finalRecords.length==0)this._table.showTableMessage(YAHOO.widget.DataTable.MSG_EMPTY,YAHOO.widget.DataTable.CLASS_EMPTY);},sort:function(filteredObj,sortObj){var toSort=[];var key;for(key in filteredObj.items){filteredObj.items[key]['__KEY']=key;toSort.push(filteredObj.items[key]);}
var sortBy={};if((typeof sortObj)=='function')sortBy=sortObj(filteredObj);else sortBy=sortObj;toSort.sort(function(a,b){var retVal=0;var vala,valb,onBottom;if(a[sortBy.column]!=b[sortBy.column]){onBottom=false;if(sortBy.keepOnBottomColumn&&sortBy.keepOnBottom){for(var i=0;i<sortBy.keepOnBottom.length;i++){if(a[sortBy.keepOnBottomColumn]==sortBy.keepOnBottom[i]){onBottom=true;break;}}}
if(onBottom)retVal=1;else{if(sortBy.isDesc){var tempa=b;b=a;a=tempa;}
if(!isNaN(a[sortBy.column]*1)&&!isNaN(b[sortBy.column]*1)){vala=a[sortBy.column]*1;valb=b[sortBy.column]*1;}else{vala=a[sortBy.column]+'';valb=b[sortBy.column]+'';}
retVal=(vala>valb)?1:-1;}}
return retVal;});filteredObj.items={};for(var i=0;i<toSort.length;i++){key=toSort[i]['__KEY'];delete toSort[i]['__KEY'];filteredObj.items[key]=toSort[i];}},resetData:function(){this._currentFilteredData=null;}};

SiteManager.Widget=function(cfg){SiteManager.Widget.initializeConfig(this,cfg);}
YAHOO.lang.extend(SiteManager.Widget,YAHOO.util.DDProxy,{bodyId:'',position:0,widgetId:-1,canDrag:true,canToggle:true,canConfig:true,showContent:true,canRemove:true,configPage:'config',configAction:'header',showHeaderActionSaveButton:true,_collection:null,_LastContentHeight:0,b4DragDrop:function(){return false;},onDragOver:function(e,DDArray){var self=SiteManager.Widget;this._collection.processWidgetDrag(this,DDArray);},endDrag:function(){this._collection.resetDrag();},canSwapWith:function(widget){var retVal=false;if(widget){retVal=this._collection==widget._collection;}
return retVal;},getIdx:function(){var idParts=this.bodyId.split('_');return idParts[idParts.length-1]*1;},onRegister:function(collection){this._collection=collection;var controls=document.getElementById(this.bodyId+'_controls');if(controls){var toggleText=(this.showContent)?'Hide':'Show';if(this.canConfig){if(this.configAction!='none'&&(this.configAction!='header'||this.showHeaderActionSaveButton)){var saveButton=this._makeButton('Save','SiteManager.Widget.saveWidgetConfigRegion(this)','save');saveButton.style.visibility='hidden';controls.appendChild(saveButton);}
controls.appendChild(this._makeButton('Manage','SiteManager.Widget.toggleWidgetConfigRegion(this)','config'));}
if(this.canToggle)controls.appendChild(this._makeButton(toggleText,'SiteManager.Widget.toggleContent(this)','toggle'));if(this.canRemove)controls.appendChild(this._makeButton('Remove','SiteManager.Widget.removePanel(this)','remove'));}},initializeContent:function(){},initializeContainer:function(){SiteManager.log('Initializing drag for '+this.bodyId);if(SiteManager.logger!==null)this.logger=SiteManager.logger;this.init(this.bodyId);this.initFrame();var headerid=this.bodyId+"_header";this.setHandleElId(headerid);setTimeout("SiteManager.Widget.showContent('"+this.bodyId+"')",100);if(this.canDrag){YAHOO.util.Dom.addClass(document.getElementById(headerid),"draggable");}else{this.lock();}},toggleContent:function(type,sendConfig,skipAnimation){if(sendConfig!==false)sendConfig=true;if(skipAnimation!==true)skipAnimation=false;var content=document.getElementById(this.bodyId+'_content');if(content){var anim=null;if(type.toLowerCase()=='hide'){this._LastContentHeight=content.scrollHeight;if(!skipAnimation){anim=new YAHOO.util.Anim(content,{height:{to:1}},0.5,YAHOO.util.Easing.backIn);}else YAHOO.util.Dom.setStyle(content,'height',1);YAHOO.util.Dom.addClass(content,'contentHidden');SiteManager.log('Hiding');if(sendConfig)SiteManager.sendConfigChange('ContentsToggled',{id:this.id,newStatus:'closed'});}else{var targetHeight=this._LastContentHeight;if(!skipAnimation){if(content.scrollHeight>this._LastContentHeight)this._LastContentHeight=content.scrollHeight;anim=new YAHOO.util.Anim(content,{height:{to:this._LastContentHeight}},0.5,YAHOO.util.Easing.backOut);anim.onComplete.subscribe(function(status,results,content){YAHOO.util.Dom.removeClass(content,'contentHidden');},content);}else{YAHOO.util.Dom.setStyle(content,'height',this._LastContentHeight);AHOO.util.Dom.removeClass(content,'contentHidden');}
SiteManager.log('Showing');if(sendConfig)SiteManager.sendConfigChange('ContentsToggled',{id:this.id,newStatus:'open'});}
if(anim!==null)anim.animate();}else SiteManager.error('No content found to toggle');},forceToggleContent:function(type){this.toggleContent(type,false,false);var toggleButton=this._getButton('toggle');if(toggleButton)toggleButton.style.display=(type=='hide')?'none':'';},_enableConfigRegion:function(){var body=document.getElementById(this.bodyId);if(body)YAHOO.util.Dom.addClass(body,'isBeingConfigured');var header=document.getElementById(this.bodyId+'_header');var buttons=header.getElementsByTagName('button');for(var i=0;i<buttons.length;i++){if(buttons[i].innerHTML=='Manage'){if(this.configAction=='none'||this.configAction=='header'&&!this.showHeaderActionSaveButton)
buttons[i].innerHTML='Finished';else buttons[i].innerHTML='Cancel';}
if(buttons[i].innerHTML=='Save'){buttons[i].style.visibility='visible';}}},_disableConfigRegion:function(){var body=document.getElementById(this.bodyId);if(body)YAHOO.util.Dom.removeClass(body,'isBeingConfigured');var header=document.getElementById(this.bodyId+'_header');if(header){var buttons=header.getElementsByTagName('button');for(var i=0;i<buttons.length;i++){if(buttons[i].innerHTML=='Cancel'||buttons[i].innerHTML=='Finished')buttons[i].innerHTML='Manage';if(buttons[i].innerHTML=='Save')buttons[i].style.visibility='hidden';}}},_addHeaderConfigFrame:function(){var header=document.getElementById(this.bodyId+'_header');var frameSrc=this.configPage+'?widgetidx='+this.idx;var frameName=this.bodyId+'_configFrame';if(header){var frame=document.createElement('iframe');frame.id=frameName;frame.name=frameName;frame.className='headerConfigFrame';if(this.showHeaderActionSaveButton){var loadFunc=function(){if(frames[frameName]){var childDoc=frames[frameName].document;var inputs=childDoc.getElementsByTagName('input');for(var i=0;i<inputs.length;i++){if(inputs[i].type.toLowerCase()=='submit')inputs[i].parentNode.removeChild(inputs[i]);}
var buttons=childDoc.getElementsByTagName('button');for(var i=0;i<buttons.length;i++){if(buttons[i].type.toLowerCase()=='submit')buttons[i].parentNode.removeChild(buttons[i]);}}}
if(window.attachEvent)frame.attachEvent('onload',loadFunc);else if(window.addEventListener)frame.addEventListener('load',loadFunc,false);}
frame.src=frameSrc;header.appendChild(frame);}},_removeHeaderConfigFrame:function(){var existingFrame=YAHOO.util.Dom.get(this.bodyId+'_configFrame');var name=existingFrame.name;var headerName=this.bodyId+'_header';var header=document.getElementById(headerName);existingFrame.parentNode.removeChild(existingFrame);if(frames[name])delete frames[name];},_makeButton:function(text,fn,id){var button=document.createElement('button');button.onclick=Function(fn);if(id){button.id=this.bodyId+'_button_'+id;button.className=id+'NavButton controlButton';}
button.innerHTML=text;return button;},_getButton:function(id){return document.getElementById(this.bodyId+'_button_'+id);}});SiteManager.Widget.initializeConfig=function(applyTo,cfg){for(key in cfg){if(key.indexOf('_')==0)alert('Cannot override property '+key+' - variable is private');else{var found=false;for(currKey in applyTo){if(currKey==key){found=true;break;}}
if(found)applyTo[key]=cfg[key];else SiteManager.error('Config option '+key+' not found');}}}
SiteManager.Widget.toggleContent=function(node){var panel=SiteManager.Widget._getPanelFromChild(node);if(panel){var widget=SiteManager.Widget._getWidgetFromNode(panel);if(widget&&widget.canToggle){var type=node.innerHTML;widget.toggleContent(type,true);node.innerHTML=(node.innerHTML=='Hide')?'Show':'Hide';}else if(!widget)SiteManager.Error('No widget found to toggle');}else SiteManager.error('No panel found to process for toggle');};SiteManager.Widget.removePanel=function(node){var widget=SiteManager.Widget._getWidgetFromNode(node);var panel=SiteManager.Widget._getPanelFromChild(node);if(panel){panel.parentNode.removeChild(panel);SiteManager.sendConfigChange('ContentsRemoved',{id:panel.id,newStatus:'removed'});var li=document.getElementById('addLink_'+widget.widgetId);if(li){li.style.display='list-item';var title=document.getElementById('myProwebToolsWidgetListTitle');if(title)title.innerHTML='Manage Widgets';}}else SiteManager.error('No panel found to process for delete');};SiteManager.Widget.showContent=function(id){var contentNode=document.getElementById(id+'_content');var widget=SiteManager.Widget._getWidgetFromNode(contentNode);contentNode.style.display='';if(widget&&!widget.showContent)widget.toggleContent('hide',false,true);};SiteManager.Widget.toggleWidgetConfigRegion=function(node){var widget=SiteManager.Widget._getWidgetFromNode(node);if(widget){var body=document.getElementById(widget.bodyId);var isConfiguring=YAHOO.util.Dom.hasClass(body,'isBeingConfigured');if(!isConfiguring){widget._enableConfigRegion();}else{widget._disableConfigRegion();}
switch(widget.configAction){case'header':if(!isConfiguring){widget._addHeaderConfigFrame();}else{widget._removeHeaderConfigFrame();}
break;case'none':break;}}};SiteManager.Widget.saveWidgetConfigRegion=function(node){var widget=SiteManager.Widget._getWidgetFromNode(node);var frameName=widget.bodyId+'_configFrame';var frame=frames[frameName];var reloadfn=function(){if(!frame||!frame.document)setTimeout(reloadfn,1000);else setTimeout(function(){window.location=window.location;},1000);}
if(frame&&frame.document&&frame.document.forms.length>0){frame.document.forms[0].submit();setTimeout(reloadfn,1000);}
if(widget.reloadGrid){var gridReload='var node = document.getElementById(\''+widget.bodyId+'\');\n'+'var widget = SiteManager.Widget._getWidgetFromNode(node);;\n'+'if(node) SiteManager.Widget.toggleWidgetConfigRegion(node);\n'+'if(widget) widget.reloadGrid();';setTimeout(gridReload,1000);}};SiteManager.Widget.getWidgetByBodyId=function(bodyId){var node=document.getElementById(bodyId);return SiteManager.Widget._getWidgetFromNode(node);};SiteManager.Widget.getDataSourceUrl=function(dataSourceUrl){var url=dataSourceUrl;url+=(url.indexOf('?')>0)?'&':'?';url+='ts='+SiteManager.Util.getTimestamp();return url;}
SiteManager.Widget._getPanelFromChild=function(node){while(node&&node.parentNode&&node.className.indexOf('panel')<0)node=node.parentNode;return(node&&node.className.indexOf('panel')>=0)?node:null;};SiteManager.Widget._getWidgetFromNode=function(node){var target=SiteManager.Widget._getPanelFromChild(node);var retVal=null;if(target)retVal=YAHOO.util.DragDropMgr.getDDById(target.id);return retVal;}

SiteManager.LayeredTabs=function(containerId){this.name=containerId;if(!SiteManager.LayeredTabs.__cache)SiteManager.LayeredTabs.__cache={};SiteManager.LayeredTabs.__cache[this.name]=this;var getNum=function(node){return node.id.replace(/.*_(\d+)_?.*/,'$1');};var getObj=function(node){var name=node.id.replace(/(.*)_\d+_?.*/,'$1');return SiteManager.LayeredTabs.__cache[name];}
this.getTabContainer=function(){return document.getElementById(this.name);};this.getTabs=function(){return this.getTabContainer().getElementsByTagName('a');};this.getContentContainer=function(){return document.getElementById(this.name+'_contents');};this.getContents=function(){var retVal=[];var divs=this.getContentContainer().getElementsByTagName('div');for(var i=0;i<divs.length;i++){if(divs[i].className=='content'){retVal.push(divs[i]);}}
return retVal;};this.switchTo=function(id){var tabs=this.getTabs();for(var i=0;i<tabs.length;i++){tabs[i].className=(getNum(tabs[i])==id)?'tab active':'tab';}
var contents=this.getContents();for(var i=0;i<contents.length;i++){contents[i].style.display=(getNum(contents[i])==id)?'block':'none';}};var click=function(e){if(!e)e=window.event;var n=(e.target)?e.target:e.srcElement;var num=getNum(n);var obj=getObj(n);obj.switchTo(num);};var size=function(){var tabContainer=this.getTabContainer();var maxWidth=Math.floor((tabContainer.clientWidth-80)/numPerRow);var tabs=this.getTabs();for(var i=0;i<tabs.length;i++){tabs[i].style.width=maxWidth+'px';}};var parseRow=function(containerWidth,row){var rowWidth=0;for(var i=0;i<row.length;i++){rowWidth+=row[i].clientWidth;}
var tabPadding=Math.floor((containerWidth-rowWidth)/row.length);var extraTics=containerWidth-rowWidth-(tabPadding*row.length);console.log(extraTics+' for row length '+row.length);for(var i=0;i<row.length;i++){var orig=row[i].clientWidth;var newWidth=orig+tabPadding-2;if(!window.ActiveXObject||document.compatMode!='BackCompat'){newWidth-=parseInt(u.Dom.getStyle(row[i],'margin-left'));newWidth-=parseInt(u.Dom.getStyle(row[i],'margin-right'));newWidth-=parseInt(u.Dom.getStyle(row[i],'padding-left'));newWidth-=parseInt(u.Dom.getStyle(row[i],'padding-right'));}
if(i<extraTics)newWidth++;row[i].style.width=newWidth+'px';var me=row[i];if(true)setTimeout(function(){console.log('Was %d, added %d, now %d',orig,tabPadding,me.clientWidth);},300);}}
var u=YAHOO.util;var container=this.getTabContainer();var containerWidth=container.clientWidth;console.log('Max size %d',containerWidth);var tabs=this.getTabs();var row=[];var lastY=-1;for(var i=0;i<tabs.length;i++){var tab=tabs[i];var thisY=u.Dom.getY(tabs[i]);if(thisY!=lastY&&lastY>0){parseRow(containerWidth,row);row=[];}
lastY=thisY;row.push(tab);console.log(YAHOO.util.Dom.getY(tabs[i]));u.Event.addListener(tab,"click",click);};parseRow(containerWidth,row);}

SiteManager.WidgetCollection=function(config){if(!config)config={};if(config['bodyId'])this.bodyId=config.bodyId;SiteManager.log('Created collection');YAHOO.util.DDM.mode=YAHOO.util.DDM.INTERSECT;YAHOO.util.Event.addListener(window,'load',this.initializeWidgets,this);this._widgets={};};SiteManager.WidgetCollection.prototype={bodyId:'',_LastSwappedWith:null,_LastSwappedWithDirection:null,_LastDragY:null,registerWidget:function(widget){SiteManager.log('Registered widget for '+widget.bodyId);this._widgets[widget.bodyId]=widget;widget.onRegister(this);},processWidgetDrag:function(draggedWidget,DDArray){var WC=SiteManager.WidgetCollection;var dragNode=draggedWidget.getEl();var proxyNode=draggedWidget.getDragEl();var newPos=YAHOO.util.Dom.getY(proxyNode);var direction='unknown';if(this._LastDragY!==null){if(newPos<this._LastDragY)direction='up';else direction='down';}
this._LastDragY=newPos;var targetArrayToCheck=Array();for(var i=0;i<DDArray.length;i++){var sourceId=(DDArray[i].getEl())?DDArray[i].getEl().id:'(noid)';var targetid=(this._LastSwappedWith)?this._LastSwappedWith.id:'(noid)';if(DDArray[i].getEl()!=this._LastSwappedWith||direction!=this._LastSwappedWithDirection){targetArrayToCheck.push(DDArray[i]);}}
var targetDD=YAHOO.util.DDM.getBestMatch(targetArrayToCheck);if(draggedWidget.canSwapWith(targetDD)){var targetNode=targetDD.getEl();if(dragNode&&targetNode&&proxyNode){if(targetNode!=this._LastSwappedWith||direction!=this._LastSwappedWithDirection){SiteManager.log('Found target '+targetNode.id+' while dragging '+dragNode.id);SiteManager.log('Parents are '+targetNode.parentNode.id+' and '+dragNode.parentNode.id);if(WC._isFarEnoughToSwap(proxyNode,targetNode)){var nodeToSwap=null;if(direction=='up')nodeToSwap=targetNode;else if(direction=='down')nodeToSwap=targetNode.nextSibling;targetNode.parentNode.insertBefore(dragNode,nodeToSwap);this.reportWidgetSwap();YAHOO.util.DDM.locationCache={};YAHOO.util.DDM.dragOvers={};this._LastSwappedWith=targetNode;this._LastSwappedWithDirection=direction;}else{SiteManager.log('Not far enough yet');}}else SiteManager.log('Not doing anything...still over last target');}else SiteManager.error('Missing a necessary drag node');}},reportWidgetSwap:function(){var tosort=Array();for(key in this._widgets){tosort.push(this._widgets[key].bodyId+'~'+YAHOO.util.Dom.getY(this._widgets[key].getEl()));}
tosort.sort(this._sortPositions);var details='';for(var i=0;i<tosort.length;i++){var parts=tosort[i].split('~');var nameparts=parts[0].split('_');if(nameparts.length>=2){if(details!='')details+='_';details+=nameparts[nameparts.length-1]+'-'+i;}}
SiteManager.sendConfigChange('WidgetOrder',{Order:details});},_sortPositions:function(a,b){var partsA=a.split('~');var partsB=b.split('~');return(partsA[1]*1)-(partsB[1]*1);},resetDrag:function(){this._LastSwappedWith=null;},initializeWidgets:function(e,source){counter=0;for(key in source._widgets){counter++;source._widgets[key].initializeContent();source._widgets[key].initializeContainer();source._widgets[key].position=counter;}}}
SiteManager.WidgetCollection.coveragePixlesForSwap=100;SiteManager.WidgetCollection._is1Above2=function(node1,node2){var top1=YAHOO.util.Dom.getY(node1);var top2=YAHOO.util.Dom.getY(node2);SiteManager.log('Testing to see if '+node1.nodeName+' '+node1.id+' ('+top1+') is above '+node2.nodeName+' '+node2.id+' ('+top2+')');return top1<top2;};SiteManager.WidgetCollection._isFarEnoughToSwap=function(dragNode,targetNode){coveragePixlesForSwap=SiteManager.WidgetCollection.coveragePixlesForSwap;var dragTop=YAHOO.util.Dom.getY(dragNode);var dragBottom=dragTop+SiteManager.Css.getSizeInt(YAHOO.util.Dom.getStyle(dragNode,'height'));var targetTop=YAHOO.util.Dom.getY(targetNode);var targetHeight=YAHOO.util.Dom.getStyle(targetNode,'height');if(targetHeight=='auto')targetHeight=targetNode.offsetHeight;else targetHeight=SiteManager.Css.getSizeInt(YAHOO.util.Dom.getStyle(targetNode,'height'));var targetBottom=targetTop+targetHeight;var coverageTop=(dragTop>targetTop)?dragTop:targetTop;var coverageBottom=(dragBottom<targetBottom)?dragBottom:targetBottom;var diff=coverageBottom-coverageTop;var dragHeight=dragBottom-dragTop;var targetHeight=targetBottom-targetTop;var testAgainst=(dragHeight<coveragePixlesForSwap)?dragHeight:coveragePixlesForSwap;if(targetHeight<testAgainst)testAgainst=targetHeight;SiteManager.log('Drag top : '+dragTop+', drag bottom : '+dragBottom+'\n'+'Target top : '+targetTop+', target bottom : '+targetBottom+'\n'+'Coverage top : '+coverageTop+', coverage bottom : '+coverageBottom+'\n'+'Drag height : '+dragHeight+', targetHeight : '+targetHeight+', default pixel coverage : '+coveragePixlesForSwap+'\n'+'Diff is '+diff+', comparing to '+testAgainst);return diff>=testAgainst;};

SiteManager.TabWidget=function(cfg){SiteManager.Widget.initializeConfig(this,cfg);}
YAHOO.lang.extend(SiteManager.TabWidget,SiteManager.Widget,{dataSource:'',_tabObject:null,initializeContent:function(){this._tabObject=new YAHOO.widget.TabView(this.bodyId+'_tabContent');if(this.dataSource!=''){var url=SiteManager.Widget.getDataSourceUrl(this.dataSource);var callback={success:SiteManager.TabWidget.dataLoadSuccess,failure:SiteManager.TabWidget.dataLoadSuccess,timeout:8000,scope:this}
YAHOO.util.Connect.asyncRequest('GET',url,callback);}}});SiteManager.TabWidget._trackedTabs={};SiteManager.TabWidget.trackTabChange=function(e){var tab=e.target;}
SiteManager.TabWidget.dataLoadSuccess=function(response){var counter=0;try{var data=eval(response.responseText);for(var i=0;i<data.length;i++){this._tabObject.addTab(new YAHOO.widget.Tab({label:data[i].label,content:data[i].content,active:(counter==0)}));counter++;}}catch(e){SiteManager.log(e);}
if(counter==0){this.forceToggleContent('hide')}}

SiteManager.GridWidget=function(cfg){SiteManager.Widget.initializeConfig(this,cfg);}
YAHOO.lang.extend(SiteManager.GridWidget,SiteManager.Widget,{columns:[],fields:[],dataSource:'',gridConfig:{},defaultGridConfig:{},isEmptyMessage:'No data is available',onBeforeInitializeGrid:null,onAfterInitializeGrid:null,_table:null,_baseGridConfig:{caption:"Results",initialRequest:"get=all&output=json",singleSelect:true,pageCurrent:1,rowsPerPage:100,startRecordIndex:1,pageLinksLength:10,rowsPerPageDropdown:[25,50,100,500],sortedBy:null},initializeContent:function(){this.initializeGrid();},rowMouseover:function(e){var row=e.target.parentNode;var caption=e.target.getElementsByTagName('caption');if(caption.length==0){row.style.backgroundColor='#EAA';row.style.cursor='pointer';}},rowMouseOut:function(e){var row=e.target.parentNode;row.style.backgroundColor='';row.style.cursor='';},cellClick:function(e){return false;},getColumn:function(key){var set=this._table.getColumnSet();var retVal=null;for(var i=0;i<set.keys.length;i++){if(set.keys[i].key==key){retVal=set.keys[i];break;}}
return retVal;},getGridConfig:function(){var newConfig={};var configKey;for(configKey in this._baseGridConfig){if(this.gridConfig[configKey]!=null)newConfig[configKey]=this.gridConfig[configKey];if(this.defaultGridConfig[configKey]!=null)newConfig[configKey]=this.defaultGridConfig[configKey];else newConfig[configKey]=this._baseGridConfig[configKey];}
return newConfig;},initializeGrid:function(){if(this.onInitializeGrid)this.onInitializeGrid();function createFn(){SiteManager.Widget.getWidgetByBodyId(this)
var gridId=this.bodyId+'_grid';SiteManager.log('Fetching grid contents for '+gridId+', loading with '+this.dataSource);var columnSet=new YAHOO.widget.ColumnSet(this.columns);var source=this._getDataSource();this._table=new YAHOO.widget.DataTable(gridId,columnSet,source,this.getGridConfig());this._table.subscribe("cellMouseoverEvent",this.rowMouseover);this._table.subscribe("cellMouseoutEvent",this.rowMouseOut);this._table.subscribe("cellClickEvent",this.cellClick);this._table.subscribe("dataReturnEvent",function(args){if(this._responseIsEmpty(args.response)){setTimeout("var w = SiteManager.Widget.getWidgetByBodyId('"+this.bodyId+"');\n"+"if(w) w.forceToggleContent('hide')",500);}else{setTimeout("var w = SiteManager.Widget.getWidgetByBodyId('"+this.bodyId+"');\n"+"if(w) w.forceToggleContent('show')",500);}
if(this._table.sortedBy){var fn="var w = SiteManager.Widget.getWidgetByBodyId('"+this.bodyId+"');\n";fn+="var colkey = w._table.sortedBy.colKey;";fn+="var col = w.getColumn(colkey);";fn+="w._table.sortColumn(col);";setTimeout(fn,100);}},{},this);}
if(window.document&&document.body){createFn.call(this);}else{YAHOO.util.Event.addListener(window,"load",createFn,this);}
console.log('Tested');},reloadGrid:function(){var source=this._getDataSource();source.makeConnection(source.siteManagerUrl,this._table.onDataReturnReplaceRows,this._table);},_responseIsEmpty:function(response){var isEmpty=false;if(!response||!response.length){isEmpty=true;}else{for(key in response[0]){if(response[0][key]==this.isEmptyMessage)isEmpty=true;}}
return isEmpty;},_getDataSource:function(){var url=SiteManager.Widget.getDataSourceUrl(this.dataSource);var retVal=new YAHOO.util.DataSource(url);retVal.responseType=YAHOO.util.DataSource.TYPE_JSON;retVal.responseSchema={resultsList:"result",fields:this.fields};retVal.siteManagerUrl=url;return retVal;}});SiteManager.GridWidget.dateSortAsc=function(rowA,rowB){var retVal=0;if(rowA.javaDate&&rowB.javaDate){var a=new Date(rowA.javaDate).getTime();var b=new Date(rowB.javaDate).getTime();if(a!=b){retVal=(a<b)?-1:1;}}
return retVal;}
SiteManager.GridWidget.dateSortDesc=function(rowA,rowB){return SiteManager.GridWidget.dateSortAsc(rowB,rowA);}

SiteManager.FilteredGridWidget=function(cfg){SiteManager.Widget.initializeConfig(this,cfg);}
YAHOO.lang.extend(SiteManager.FilteredGridWidget,SiteManager.GridWidget,{_initialFilter:{},_grouper:null,onBeforeFilter:new YAHOO.util.CustomEvent("onBeforeFilter",this),onAfterFilter:new YAHOO.util.CustomEvent("onAfterFilter",this),filter:function(filter){var doFilter=this.onBeforeFilter.fire(filter);if((doFilter==null||doFilter)&&this._grouper!=null){this._grouper.filter(filter);this.onAfterFilter.fire(filter);}},getCurrentFilter:function(){return(this._grouper&&this._grouper._currentFilter)?this._grouper._currentFilter:{};},initializeGrid:function(){if(realmId)this.dataSource=this.dataSource.replace(/\/r\/pweb\//i,'/r/'+realmId+'/');var gridId=this.bodyId+'_grid';var callback={success:this._buildTable,failture:this._responseFailure,scope:this}
timer('Getting data for '+this.bodyId);YAHOO.util.Connect.asyncRequest('POST',this.dataSource,callback);},_responseFailure:function(){alert('There was an error loading a table');},_buildTable:function(response){timer('Ingesting results for '+this.bodyId);try{var results=eval('('+response.responseText+')');}catch(e){console.error(e);}
if(results==null)results={};if(results.result==null)results.result=[];timer('Grouping '+results.result.length+' results for '+this.bodyId);var columnSet=new YAHOO.widget.ColumnSet(this.columns);var gridId=this.bodyId+'_grid';this._table=new YAHOO.widget.DataTable(gridId,columnSet,{});this._table.subscribe("cellMouseoverEvent",this.rowMouseover);this._table.subscribe("cellMouseoutEvent",this.rowMouseOut);this._table.subscribe("cellClickEvent",this.cellClick);this._grouper=new SiteManager.DataGrouper(this._table,results.result,this._initialFilter);timer('Made grouper for '+this.bodyId);this.filter(this._initialFilter);timer('Filtered and loaded '+this.bodyId);},resetData:function(){if(this._grouper)this._grouper.resetData();}});

var ClientDashboard={};ClientDashboard.getDefaultStartDate=function(){var now=new Date();var date=now.getDate();var retVal=null;if(date>1){retVal=now.setDate(1);}else{var startMonth=now.getMonth()-1;var startYear=now.getFullYear();if(startMonth<0){startMonth=11;startYear=startYear-1;}
retVal=new Date(startYear+'/'+startMonth+'/1');}
return ClientDashboard.getFormattedDate(retVal);};ClientDashboard.getDefaultEndDate=function(){var now=new Date();var date=now.getDate();var retVal=null;if(date>1){date-=1;retVal=now.setDate(date);}else retVal=now;return ClientDashboard.getFormattedDate(retVal);};ClientDashboard.checkAllowedStartDate=function(d){var endDate=new Date(document.getElementById('endDate').value);return d.getTime()>endDate.getTime();};ClientDashboard.checkAllowedEndDate=function(d){var startDate=new Date(document.getElementById('startDate').value);var now=new Date();now.setHours(0,0,0,0);return d.getTime()<startDate.getTime()||d.getTime()>=now.getTime();};ClientDashboard.updateWidgetDates=function(startDateFieldId,endDateFieldId,collection,cal){cal.destroy();var widget,filter;var records,i;var startDate=document.getElementById(startDateFieldId).value;var endDate=document.getElementById(endDateFieldId).value;setTimeout(function(){for(key in collection._widgets){widget=collection._widgets[key];filter=widget.getCurrentFilter();filter['startDate']=startDate;filter['endDate']=endDate;widget.filter(filter);ClientDashboard.updateWidgetHeights();}},200);};ClientDashboard.updateGrandTotals=function(collection){var totalsRows={};for(key in collection._widgets){widget=collection._widgets[key];if(widget._table){records=widget._table.getRecordSet().getRecords();for(i=records.length-1;i>=0;i--){if(records[i].grouping=='totals'){totalsRows[key]=records[i];break;}}}}
var views=(totalsRows['pageSummaryGrid'])?totalsRows['pageSummaryGrid'].views:0;var visitors=(totalsRows['pageSummaryGrid'])?totalsRows['pageSummaryGrid'].visitors:0;var leads=(totalsRows['leadSummaryGrid'])?totalsRows['leadSummaryGrid'].leadCount:0;var emailimpressions=(totalsRows['emailSummaryGrid'])?totalsRows['emailSummaryGrid'].numberSent:0;var onlineimpressions=(totalsRows['bannerContentGrid'])?totalsRows['bannerContentGrid'].impressions:0;var start=document.getElementById('startDate').value;var end=document.getElementById('endDate').value;var title='Campaign Summary - Date Range: '+ClientDashboard.getFormattedDate(start)+' - '+ClientDashboard.getFormattedDate(end);var grandTotalTable=document.getElementById('grandTotals');var rows='<table class="grandTotals"><caption>'+title+'</caption>';rows+='<tr><th style="width:115px;">Email Impressions</th><th style="width:115px;">Online Impressions</th><th style="width:80px;">Page Views</th><th style="width:80px;">Visitors</th><th>Leads</th></tr>';rows+='<tr>'+'<td class="number">'+ClientDashboard.formatNumberCell(null,emailimpressions)+'</td>'+'<td class="number">'+ClientDashboard.formatNumberCell(null,onlineimpressions)+'</td>'+'<td class="number">'+ClientDashboard.formatNumberCell(null,views)+'</td>'+'<td class="number">'+ClientDashboard.formatNumberCell(null,visitors)+'</td>'+'<td class="number">'+ClientDashboard.formatNumberCell(null,leads)+'</td>'+'</tr></table>';grandTotalTable.innerHTML=rows;grandTotalTable.parentNode.parentNode.getElementsByTagName('h2')[0].innerHTML=title;};ClientDashboard.updateWidgetHeights=function(){var widget,filter;for(key in collection._widgets){widget=collection._widgets[key];var panel=document.getElementById(widget.bodyId);var table=panel.getElementsByTagName('table')[0];ClientDashboard.fixHeaders(table);var tableHeight=YAHOO.util.Dom.getStyle(table,'height');if(tableHeight=='auto'){tableHeight=table.offsetHeight;}
var headers=panel.getElementsByTagName('h2');var headerHeight='0px';if(headers.length>0){headerHeight=YAHOO.util.Dom.getStyle(headers[0],'height');if(headerHeight=='auto'){headerHeight=headers[0].offsetHeight;}}
if(headerHeight.replace)headerHeight=headerHeight.replace('px','');var hint=headerHeight*1;if(tableHeight.replace)tableHeight=tableHeight.replace('px','');var tint=tableHeight*1;var total=((hint+tint+10)+'px');YAHOO.util.Dom.setStyle(panel,'height',total);}}
ClientDashboard.getDate=function(indate){var outDate;if(typeof indate=='number'){outDate=new Date();outDate.setTime(indate);}else outDate=new Date(indate);return outDate}
ClientDashboard.getFormattedDate=function(indate){if(typeof indate=='string')indate=indate.replace(/-/g,'/');var date=ClientDashboard.getDate(indate);var m=date.getMonth()+1;if(m<10)m='0'+m;var d=date.getDate();if(d<10)d='0'+d;var y=date.getFullYear()+'';return m+'/'+d+'/'+y;}
ClientDashboard.getPHPFormattedDate=function(indate){var date=ClientDashboard.getDate(indate);var m=date.getMonth()+1;if(m<10)m='0'+m;var d=date.getDate();if(d<10)d='0'+d;var y=date.getFullYear()+'';return y+'-'+m+'-'+d;}
ClientDashboard.fixBlanks=function(elCell,oRecord,oColumn,oData){elCell.innerHTML=(oRecord[oColumn.key]=='')?0:oRecord[oColumn.key];elCell.innerHTML=ClientDashboard.formatNumberCell(elCell,elCell.innerHTML)}
ClientDashboard.formatNumberCell=function(elCell,value){if(elCell!=null)YAHOO.util.Dom.addClass(elCell,"number");value=value+'';var num=value.replace(/\s*([^\s]*)\s*/,'$1')*1;var finalNum='';if(!isNaN(num)){num=num+'';var counter=0;var chr='';for(var i=num.length-1;i>=0;i--){chr=num.charAt(i);if(counter>0&&counter%3==0)finalNum=chr+','+finalNum;else finalNum=chr+finalNum;counter++;}}else finalNum=value;if(finalNum=='undefined')finalNum='';return finalNum;}
ClientDashboard.formatNumber=function(elCell,oRecord,oColumn,oData){elCell.innerHTML=ClientDashboard.formatNumberCell(elCell,oRecord[oColumn.key]);}
ClientDashboard.fixHeaders=function(node){while(node&&node.parentNode&&node.nodeName.toLowerCase()!='table')node=node.parentNode;if(node&&node.nodeName.toLowerCase()=='table'){var headers=node.getElementsByTagName('th');headers[0].width=650;for(var i=1;i<headers.length;i++){YAHOO.util.Dom.addClass(headers[i],"dataHeader");}}}
ClientDashboard.changePageDate=function(startId,endId,calendar){var url=window.location.toString();url=url.replace(/&start[^&]+/i,'').replace(/&end[^&]+/i,'');url+=(url.indexOf('?')>0)?'&':'?';var startNode=document.getElementById(startId);var endNode=document.getElementById(endId);url+='start='+ClientDashboard.getPHPFormattedDate(startNode.value)+'&end='+ClientDashboard.getPHPFormattedDate(endNode.value);window.location=url;}
ClientDashboard.getPageDates=function(){var url=window.location.toString();start=url.replace(/.*[\?\&]start=([^&]+).*/i,'$1');if(start==''||start==url)start=ClientDashboard.getDefaultStartDate();console.log('Start = '+start);end=url.replace(/.*[\?\&]end=([^&]+).*/i,'$1');if(end==''||end==url)end=ClientDashboard.getDefaultEndDate();console.log('End = '+end);return{startDate:ClientDashboard.getFormattedDate(start),endDate:ClientDashboard.getFormattedDate(end)};}

ClientDashboard.formatAdTypeTitle=function(elCell,oRecord,oColumn,oData){YAHOO.util.Dom.addClass(elCell,"titleCell");ClientDashboard.fixHeaders(elCell);if(oRecord.grouping=='totals'){elCell.innerHTML='Totals';YAHOO.util.Dom.addClass(elCell.parentNode,"totals");}else{YAHOO.util.Dom.removeClass(elCell.parentNode,"totals");if(oRecord.grouping=='subgroup'||oRecord.grouping=='belowThreshold'){elCell.innerHTML=(oRecord.grouping=='belowThreshold')?'Other':oRecord.pageDisplayTitle;YAHOO.util.Dom.addClass(elCell.parentNode,"ungrouped");}
else{elCell.innerHTML='<a href="#" onclick="ClientDashboard.PageSummaryGridWidget.openType(this);return false;">'+oRecord.adTypeTitle+'</a>';YAHOO.util.Dom.removeClass(elCell.parentNode,"ungrouped");}}};ClientDashboard.PageSummaryGridWidget=function(cfg){SiteManager.Widget.initializeConfig(this,cfg);}
YAHOO.lang.extend(ClientDashboard.PageSummaryGridWidget,SiteManager.FilteredGridWidget,{columns:[{key:"adTypeTitle",text:"Type",formatter:ClientDashboard.formatAdTypeTitle},{key:"subKeyCount",text:"Items",resizeable:true,formatter:ClientDashboard.formatNumber},{key:"views",text:"Views",resizeable:true,formatter:ClientDashboard.formatNumber},{key:"visitors",text:"Visitors",resizeable:true,formatter:ClientDashboard.formatNumber}],fields:["adTypeTitle","displayTitle","dateStamp","pageDisplayTitle","views","visitors","grouping","pageID","subKeyCount"],isEmptyMessage:'No summary information is available',dataSource:'/r/pweb/p/clientDashboard/pageSummaryGridWidgetLoader',defaultGridConfig:{paginated:false,caption:"Page Summary"},_initialFilter:{dateColumn:'dateStamp',startDate:ClientDashboard.getDefaultStartDate(),endDate:ClientDashboard.getDefaultEndDate(),groupBy:['adTypeTitle'],sortBy:{column:'adTypeTitle',keepOnBottomColumn:'adTypeTitle',keepOnBottom:['Other'],isDesc:false},subFilter:function(row,filter){var retVal={};if(row.adTypeTitle=='Other'){retVal.groupBy=['pageID'];retVal.sortBy={column:'pageID'};}else{retVal.groupBy=['pageDisplayTitle'];retVal.sortBy={column:'pageDisplayTitle'};}
retVal.sumBy=['views','visitors'];return retVal;},sumBy:['views','visitors'],detailThreshold:4},initializeContent:function(){this.initializeGrid();this.onAfterFilter.subscribe(function(filter){ClientDashboard.updateGrandTotals(collection);});},_extraDataReturn:function(args){var response=args.response;},rowMouseover:function(e){var row=e.target.parentNode;var caption=e.target.getElementsByTagName('caption');if(caption.length==0&&!YAHOO.util.Dom.hasClass(row,'totals')){YAHOO.util.Dom.addClass(row,'mouseOver');}},rowMouseOut:function(e){var row=e.target.parentNode;YAHOO.util.Dom.removeClass(row,'mouseOver');}});ClientDashboard.PageSummaryGridWidget.openType=function(node){var widget=SiteManager.Widget._getWidgetFromNode(node);var currFilter=widget.getCurrentFilter();if(!currFilter['keepDetailsFor'])currFilter['keepDetailsFor']={};if(currFilter.keepDetailsFor.adTypeTitle==node.innerHTML){currFilter.keepDetailsFor=null;}else{currFilter.keepDetailsFor={adTypeTitle:node.innerHTML};}
widget.filter(currFilter);var panel=document.getElementById(widget.bodyId);var table=panel.getElementsByTagName('table')[0];ClientDashboard.updateWidgetHeights();}
ClientDashboard.PageSummaryGridWidget.titleSortAsc=function(rowA,rowB){var retVal=0;if(rowA.adTypeTitle!=rowB.adTypeTitle){retVal=(rowA.adTypeTitle=='Other'||rowA<rowB)?-1:1;}
return retVal;}
ClientDashboard.PageSummaryGridWidget.titleSortDesc=function(rowA,rowB){return ClientDashboard.PageSummaryGridWidget.titleSortAsc(rowB,rowA);}

ClientDashboard.LeadSummaryGridWidget=function(cfg){SiteManager.Widget.initializeConfig(this,cfg);}
ClientDashboard.fixLeadSummaryBlanks=function(elCell,oRecord,oColumn,oData){if(oRecord['pageDisplayTitle']=='Author Feedback'){elCell.innerHTML=((oRecord[oColumn.key]+'')=='0')?'N/A':oRecord[oColumn.key];}else if(oRecord.source=='magazine'&&oColumn.key=='views'){elCell.innerHTML=((oRecord[oColumn.key]+'')=='0')?'N/A':oRecord[oColumn.key];}
ClientDashboard.fixBlanks(elCell,oRecord,oColumn,oData);elCell.innerHTML=ClientDashboard.formatNumberCell(elCell,elCell.innerHTML);}
var gLeadWidget=null;ClientDashboard.formatPageDisplayTitle=function(elCell,oRecord,oColumn,oData){YAHOO.util.Dom.addClass(elCell,"titleCell");ClientDashboard.fixHeaders(elCell);if(oRecord.grouping=='totals'){elCell.innerHTML='Totals';YAHOO.util.Dom.addClass(elCell.parentNode,"totals");}else{YAHOO.util.Dom.removeClass(elCell.parentNode,"totals");if(oRecord.grouping=='belowThreshold'){elCell.innerHTML='<a href="#" onclick="ClientDashboard.LeadSummaryGridWidget.openType(this);return false;">Other Offers</a>';YAHOO.util.Dom.removeClass(elCell.parentNode,"ungrouped");}else{if(gLeadWidget==null)gLeadWidget=SiteManager.Widget._getWidgetFromNode(elCell);var currFilter=gLeadWidget.getCurrentFilter();var startDate=(currFilter)?currFilter.startDate:ClientDashboard.getDefaultStartDate();var endDate=(currFilter)?currFilter.endDate:ClientDashboard.getDefaultEndDate();if(oRecord.adcIDI!=null){elCell.innerHTML=oRecord.pageDisplayTitle+' (<a href="/r/'+realmId+'/p/clientDashboard/leadDetails'+'?adcIDI='+oRecord.adcIDI+'&start='+ClientDashboard.getPHPFormattedDate(startDate)+'&end='+ClientDashboard.getPHPFormattedDate(endDate)+'" target="_blank">details</a>)';}else if(oRecord.source=='authorSummary'){elCell.innerHTML=oRecord.pageDisplayTitle+' (<a href="/r/'+realmId+'/p/clientDashboard/viewAuthorLeads'+'" target="_blank">details</a>)';}else if(oRecord.source=='magazine'){elCell.innerHTML=oRecord.pageDisplayTitle+' (<a href="/r/'+realmId+'/p/clientDashboard/leadDetails'+'?fsID='+oRecord.fsID+'&start='+ClientDashboard.getPHPFormattedDate(startDate)+'&end='+ClientDashboard.getPHPFormattedDate(endDate)+'" target="_blank">details</a>)';}else elCell.innerHTML=oRecord.pageDisplayTitle;if(oRecord.grouping=='subgroup')
YAHOO.util.Dom.addClass(elCell.parentNode,"ungrouped");}}};ClientDashboard.formatRatio=function(elCell,oRecord,oColumn,oData){if(!oRecord.leadCount||!oRecord.views){elCell.innerHTML='-';YAHOO.util.Dom.addClass(elCell,'nullCell');YAHOO.util.Dom.removeClass(elCell,'ratioCell');}else{var numval=Math.round((oRecord.leadCount*1)/(oRecord.views*1)*1000)/10;var strval=numval+'';var strdec=strval.replace(/^[^.]*/,'');switch(strdec.length){case 0:strval=strval+'.0';break;}
elCell.innerHTML=strval+'%';YAHOO.util.Dom.addClass(elCell,'ratioCell');YAHOO.util.Dom.removeClass(elCell,'nullCell');}
elCell.innerHTML=ClientDashboard.formatNumberCell(elCell,elCell.innerHTML);}
ClientDashboard.formatLeadCount=function(elCell,oRecord,oColumn,oData){ClientDashboard.fixBlanks(elCell,oRecord,oColumn,oData);elCell.innerHTML=ClientDashboard.formatNumberCell(elCell,elCell.innerHTML);}
YAHOO.lang.extend(ClientDashboard.LeadSummaryGridWidget,SiteManager.FilteredGridWidget,{columns:[{key:"pageDisplayTitle",text:"Title",formatter:ClientDashboard.formatPageDisplayTitle},{key:"views",text:"Views",resizeable:true,formatter:ClientDashboard.fixLeadSummaryBlanks},{key:"leadCount",text:"Leads",resizeable:true,formatter:ClientDashboard.formatLeadCount},{text:"Ratio (%)",formatter:ClientDashboard.formatRatio}],fields:["dateStamp","pageDisplayTitle","contentID","views","adcIDI","leadCount","source"],isEmptyMessage:'No summary information is available',dataSource:'/r/pweb/p/clientDashboard/leadSummaryGridWidgetLoader',defaultGridConfig:{paginated:false,caption:"Lead Summary"},_initialFilter:{dateColumn:'dateStamp',startDate:ClientDashboard.getDefaultStartDate(),endDate:ClientDashboard.getDefaultEndDate(),sortBy:{column:'leadCount',keepOnBottomColumn:'pageDisplayTitle',keepOnBottom:['Author Feedback','Contact Us'],isDesc:true},groupBy:['pageDisplayTitle'],sumBy:['views','leadCount'],thresholdIgnoreColumn:'pageDisplayTitle',thresholdIgnoreValues:['Author Feedback','Contact Us'],thresholdCount:3,subFilter:function(row,filter){var obj={};for(key in filter)obj[key]=filter[key];delete obj['keepDetailsFor'];delete obj['thresholdCount'];delete obj['thresholdIgnoreColumn'];delete obj['thresholdIgnoreValues'];return obj;},onAfterFilter:function(data){for(var i=data.length-1;i>=0;i--){if(data[i].leadCount+''=='0'&&data[i].adcIDI!=null)data.splice(i,1);}}},onAfterInitializeGrid:function(){this._table.subscribe("dataReturnEvent",ClientDashboard.UpdateGrandTotalsOnPageLoad,{pageCollection:collection},this);},_extraDataReturn:function(args){var response=args.response;},rowMouseover:function(e){var row=e.target.parentNode;var caption=e.target.getElementsByTagName('caption');if(caption.length==0&&!YAHOO.util.Dom.hasClass(row,'totals')){YAHOO.util.Dom.addClass(row,'mouseOver');}},rowMouseOut:function(e){var row=e.target.parentNode;YAHOO.util.Dom.removeClass(row,'mouseOver');}});ClientDashboard.LeadSummaryGridWidget.openType=function(node){var widget=SiteManager.Widget._getWidgetFromNode(node);var currFilter=widget.getCurrentFilter();if(!currFilter['keepDetailsFor'])currFilter['keepDetailsFor']={};if(currFilter.keepDetailsFor.pageDisplayTitle==node.innerHTML){currFilter.keepDetailsFor=null;}else{currFilter.keepDetailsFor={pageDisplayTitle:node.innerHTML};}
widget.filter(currFilter);ClientDashboard.updateWidgetHeights();}

ClientDashboard.formatEmailDate=function(elCell,oRecord,oColumn,oData){YAHOO.util.Dom.addClass(elCell,"date");if(oRecord.grouping=='totals'){elCell.innerHTML='Totals';elCell.parentNode.getElementsByTagName('td')[0].innerHTML='';YAHOO.util.Dom.addClass(elCell.parentNode,"totals");elCell.innerHTML='';}else{YAHOO.util.Dom.removeClass(elCell.parentNode,"totals");if(oRecord.grouping=='belowThreshold'){YAHOO.util.Dom.removeClass(elCell.parentNode,"ungrouped");}else if(oRecord.grouping=='subgroup'){YAHOO.util.Dom.addClass(elCell.parentNode,"ungrouped");}
elCell.innerHTML=ClientDashboard.getFormattedDate(oRecord.sendDate);}};ClientDashboard.formatEmailTitle=function(elCell,oRecord,oColumn,oData){YAHOO.util.Dom.addClass(elCell,"titleCell");ClientDashboard.fixHeaders(elCell);if(oRecord.grouping=='totals'){elCell.innerHTML='';}else{if(oRecord.grouping=='subgroup'){elCell.innerHTML=(oRecord.cTitle)?oRecord.cTitle:oRecord.pageID;YAHOO.util.Dom.addClass(elCell.parentNode,"ungrouped");YAHOO.util.Dom.addClass(elCell,"titleCell");}else{if(oRecord.lRealm!=2){elCell.innerHTML=oRecord.subject;}else{elCell.innerHTML='<a href="#" onclick="ClientDashboard.EmailSummaryGridWidget.openType(this);return false;">'+oRecord.subject+'</a>';}
YAHOO.util.Dom.removeClass(elCell.parentNode,"ungrouped");YAHOO.util.Dom.removeClass(elCell,"titleCell");}}};ClientDashboard.formatEmailSummaryHits=function(elCell,oRecord,oColumn,oData){var value=ClientDashboard.formatNumberCell(elCell,oRecord.distinctHits);if(oRecord.grouping=='totals'||oRecord.grouping=='subgroup'||(oRecord.cRealm+'')=='2'){elCell.innerHTML=value;}};ClientDashboard.formatEmailOpens=function(elCell,oRecord,oColumn,oData){var value=(oRecord.distinctOpens&&oRecord.distinctOpens>0&&oRecord.lReam!=2)?oRecord.distinctOpens:'N/A';elCell.innerHTML=ClientDashboard.formatNumberCell(elCell,value);};ClientDashboard.EmailSummaryGridWidget=function(cfg){SiteManager.Widget.initializeConfig(this,cfg);}
YAHOO.lang.extend(ClientDashboard.EmailSummaryGridWidget,SiteManager.FilteredGridWidget,{columns:[{key:"subject",text:"Subject",formatter:ClientDashboard.formatEmailTitle},{key:"sendDate",text:"Date",resizeable:true,formatter:ClientDashboard.formatEmailDate},{key:"distinctHits",text:"Clicks",resizeable:true,formatter:ClientDashboard.formatNumber}],fields:["sendDate","lRealm","pageID","subject","numberSent","textSendCount","title","nFID","cTitle","cRealm","distinctHits"],isEmptyMessage:'No summary information is available',dataSource:'/r/pweb/p/clientDashboard/emailSummaryGridWidgetLoader',defaultGridConfig:{paginated:false,caption:"Email Summary"},_initialFilter:{dateColumn:'sendDate',startDate:ClientDashboard.getDefaultStartDate(),endDate:ClientDashboard.getDefaultEndDate(),sortBy:{column:'sendDate',isDesc:true},groupBy:['nFID'],sumBy:["distinctHits"],totalBy:["numberSent","distinctHits","distinctOpens"],subFilter:{groupBy:['cTitle'],sumBy:["distinctHits","distinctOpens"]}},onAfterInitializeGrid:function(){this._table.subscribe("dataReturnEvent",ClientDashboard.UpdateGrandTotalsOnPageLoad,{pageCollection:collection},this);},_extraDataReturn:function(args){var response=args.response;},rowMouseover:function(e){var row=e.target.parentNode;var caption=e.target.getElementsByTagName('caption');if(caption.length==0&&!YAHOO.util.Dom.hasClass(row,'totals')){YAHOO.util.Dom.addClass(row,'mouseOver');}},rowMouseOut:function(e){var row=e.target.parentNode;YAHOO.util.Dom.removeClass(row,'mouseOver');}});ClientDashboard.EmailSummaryGridWidget.openType=function(node){var widget=SiteManager.Widget._getWidgetFromNode(node);var currFilter=widget.getCurrentFilter();if(!currFilter['keepDetailsFor'])currFilter['keepDetailsFor']={};if(currFilter.keepDetailsFor.subject==node.innerHTML){currFilter.keepDetailsFor=null;}else{currFilter.keepDetailsFor={subject:node.innerHTML};}
widget.filter(currFilter);ClientDashboard.updateWidgetHeights();}

ClientDashboard.changeBannerSummaryType=function(node){var widget=SiteManager.Widget._getWidgetFromNode(node);var topGroup=[];var subGroup=[];var type=node.options[node.selectedIndex].value;var parts=type.split(',');console.log(type+', '+parts[0]+', '+parts[1]);var currFilter=widget.getCurrentFilter();currFilter.groupBy=[parts[0]];currFilter.subFilter.groupBy=[parts[1]];widget.currentGroup=parts[0];widget.currentSubGroup=parts[1];widget.resetData();widget.filter(currFilter);ClientDashboard.updateWidgetHeights();}
var gBannerWidget=null;ClientDashboard.formatBannerTitle=function(elCell,oRecord,oColumn,oData){YAHOO.util.Dom.addClass(elCell,"titleCell");if(oRecord.grouping=='totals'){YAHOO.util.Dom.addClass(elCell.parentNode,"totals");elCell.innerHTML="";}else{YAHOO.util.Dom.removeClass(elCell.parentNode,"totals");if(oRecord.grouping=='belowThreshold'){YAHOO.util.Dom.removeClass(elCell.parentNode,"ungrouped");}else{if(oRecord.grouping=='subgroup')
YAHOO.util.Dom.addClass(elCell.parentNode,"ungrouped");}
if(!gBannerWidget)gBannerWidget=SiteManager.Widget._getWidgetFromNode(elCell);var type=(oRecord.grouping=='subgroup')?gBannerWidget.currentSubGroup:gBannerWidget.currentGroup;var content=oRecord[type];var title='';switch(type){case'contentTitle':title='Title';break;case'displayLocation_title':title='Location';break;case'typeTitle':title='Type';break;}
var panel=document.getElementById(gBannerWidget.bodyId);var headers=panel.getElementsByTagName('th');headers[0].getElementsByTagName('span')[0].innerHTML=title;elCell.innerHTML='<a href="#" onclick="ClientDashboard.BannerContentSummaryGridWidget.openType(this); return false;">'+content+'</a>';}};ClientDashboard.formatBannerRatio=function(elCell,oRecord,oColumn,oData){if(!oRecord.impressions||!oRecord.clicks){elCell.innerHTML='-';YAHOO.util.Dom.addClass(elCell,'nullCell');YAHOO.util.Dom.removeClass(elCell,'ratioCell');}else{var numval=Math.round((oRecord.clicks*1)/(oRecord.impressions*1)*1000)/10;var strval=numval+'';var strdec=strval.replace(/^[^.]*/,'');switch(strdec.length){case 0:strval=strval+'.0';break;}
elCell.innerHTML=strval+'%';YAHOO.util.Dom.addClass(elCell,'ratioCell');YAHOO.util.Dom.removeClass(elCell,'nullCell');}}
ClientDashboard.BannerContentSummaryGridWidget=function(cfg){SiteManager.Widget.initializeConfig(this,cfg);this.setupDateRequest();}
YAHOO.lang.extend(ClientDashboard.BannerContentSummaryGridWidget,SiteManager.FilteredGridWidget,{currentGroup:'contentTitle',currentSubGroup:'displayLocation_title',oldestDateSelected:null,setupDateRequest:function(){this.onBeforeFilter.subscribe(this.dataFiller,this);},dataFiller:function(dontcare1,dontcare2,me){var filter=me.getCurrentFilter();var retVal=true;if(me.oldestDateSelected!=null){var endDate=ClientDashboard.getDate(me.oldestDateSelected);var startDate=ClientDashboard.getDate(filter.startDate);if(startDate.getTime()<endDate.getTime()){retVal=false;var url=me.dataSource;url=url.replace(/([^?]+).*/,'$1');url+='?start='+ClientDashboard.getFormattedDate(startDate)+'&end='+ClientDashboard.getFormattedDate(endDate)+'&includeEnd=false';var callback={success:me.addData,scope:me}
YAHOO.util.Connect.asyncRequest('GET',url,callback);}}
me.oldestDateSelected=filter.startDate;return retVal;},addData:function(response){try{var results=eval('('+response.responseText+')');}catch(e){console.error(e);}
this._grouper.addData(results.result);this.filter(this.getCurrentFilter());ClientDashboard.updateWidgetHeights();},columns:[{key:"contentTitle",text:"Title",formatter:ClientDashboard.formatBannerTitle},{key:"subKeyCount",text:"Items",resizeable:true,formatter:ClientDashboard.formatNumber},{key:"impressions",text:"Impressions",resizeable:true,formatter:ClientDashboard.fixBlanks},{key:"clicks",text:"Clicks",resizeable:true,formatter:ClientDashboard.fixBlanks},{text:"Ratio",formatter:ClientDashboard.formatBannerRatio}],fields:["dateStamp","contentTitle","typeTitle","displayLocation_title","impressions","clicks"],isEmptyMessage:'No summary information is available',dataSource:'/r/pweb/p/clientDashboard/bannerSummaryGridWidgetLoader?start='+ClientDashboard.getFormattedDate(ClientDashboard.getDefaultStartDate())+'&end='+ClientDashboard.getFormattedDate(ClientDashboard.getDefaultEndDate())+'&includeEnd=true',defaultGridConfig:{paginated:false,caption:"By Content"},_initialFilter:{dateColumn:'dateStamp',startDate:ClientDashboard.getDefaultStartDate(),endDate:ClientDashboard.getDefaultEndDate(),sortBy:{column:'contentTitle',isDesc:false},groupBy:['contentTitle'],sumBy:["impressions","clicks"],totalSubItems:true,subFilter:{sortBy:{column:'contentTitle',isDesc:false},sumBy:["impressions","clicks"],groupBy:['displayLocation_title']},onAfterFilter:function(data){var counter;for(var i=data.length-1;i>=0;i--){if(!data[i].grouping){counter=0;for(key in data[i].subKeyTotals){counter++;}
data[i].subKeyCount=counter;}}}},onAfterInitializeGrid:function(){this._table.subscribe("dataReturnEvent",ClientDashboard.UpdateGrandTotalsOnPageLoad,{pageCollection:collection},this);},_extraDataReturn:function(args){var response=args.response;},rowMouseover:function(e){var row=e.target.parentNode;var caption=e.target.getElementsByTagName('caption');if(caption.length==0&&!YAHOO.util.Dom.hasClass(row,'totals')){YAHOO.util.Dom.addClass(row,'mouseOver');}},rowMouseOut:function(e){var row=e.target.parentNode;YAHOO.util.Dom.removeClass(row,'mouseOver');}});ClientDashboard.BannerContentSummaryGridWidget.openType=function(node){var widget=SiteManager.Widget._getWidgetFromNode(node);var currFilter=widget.getCurrentFilter();if(!currFilter['keepDetailsFor'])currFilter['keepDetailsFor']={};if(currFilter.keepDetailsFor[widget.currentGroup]==node.innerHTML){currFilter.keepDetailsFor=null;}else{currFilter.keepDetailsFor={};currFilter.keepDetailsFor[widget.currentGroup]=node.innerHTML;}
widget.filter(currFilter);ClientDashboard.updateWidgetHeights();}

SiteManager.Slider=function(cfg){SiteManager.Widget.initializeConfig(this,cfg);this.bind();}
SiteManager.Slider.prototype={yuiSlider:null,bodyId:'',itemCount:0,sliderWidth:0,sliderStep:0,contentStep:0,bind:function(){var container=document.getElementById(this.bodyId+'_contentsOuter');var items=container.getElementsByTagName('ul');this.itemCount=items.length-1;this.contentStep=YAHOO.util.Dom.getStyle(container,'width').replace('px','');this.sliderWidth=98;this.sliderStep=Math.floor(this.sliderWidth/this.itemCount);var remainder=this.sliderWidth-(this.sliderStep*(this.itemCount));if(remainder>0)this.sliderWidth-=remainder;if(this.sliderStep<8)this.sliderStep=8;YAHOO.util.Event.onAvailable(this.bodyId,function(){this.yuiSlider=YAHOO.widget.Slider.getHorizSlider(this.bodyId+'_scrollerBody',this.bodyId+'_scrollerTab',0,this.sliderWidth,this.sliderStep);this.yuiSlider.subscribe('change',function(){var step=Math.floor(this.yuiSlider.getValue()/this.sliderStep);var container=document.getElementById(this.bodyId+'_contentsOuter');var scrollTarget=step*this.contentStep;if(scrollTarget>(this.itemCount*this.contentStep)){console.log('Skipping scroll - already at max step');}else{var myAnim=new YAHOO.util.Scroll(container,{scroll:{to:[scrollTarget,container.scrollTop]}},.5,YAHOO.util.Easing.easeOut);myAnim.animate();}},null,this);},null,this);SiteManager.Slider.Cache[this.bodyId]=this;},left:function(){var currValue=this.yuiSlider.getValue();this.yuiSlider.setValue(currValue-this.sliderStep);},right:function(){var currValue=this.yuiSlider.getValue();this.yuiSlider.setValue(currValue+this.sliderStep);}};SiteManager.Slider.Cache={};SiteManager.Slider.getFromChild=function(node){while(!SiteManager.Slider.Cache[node.id]&&node.parentNode)node=node.parentNode;if(SiteManager.Slider.Cache[node.id])return SiteManager.Slider.Cache[node.id];else return null;}
SiteManager.Slider.left=function(node){var slider=SiteManager.Slider.getFromChild(node);if(slider)slider.left();}
SiteManager.Slider.right=function(node){var slider=SiteManager.Slider.getFromChild(node);if(slider)slider.right();}

var ProWeb={};ProWeb._trackedItems={};ProWeb.trackTabControl=function(e){var body=this.get('element').id.replace(/_.*$/,'');var tab=this.get('activeTab');var label=tab.get('label');if(label=='')label=tab.get('labelEl').parentNode.className;ProWeb.track(body,label);}
ProWeb.track=function(region,page){var key=region+'_'+page;if(ProWeb._trackedItems[key]==null){var trackPage=window.location.toString();var regionUrl=(region&&region.replace)?region.replace(/\s/g,'_'):'(unknown)';var pageUrl=(page&&page.replace)?page.replace(/\s/g,'_'):'(unknown)';var qs='ajax=1&region='+regionUrl+'&tab='+pageUrl;trackPage+=(trackPage.indexOf('?')>0)?'&':'?';trackPage+=qs;if(window.urchinTracker)urchinTracker(trackPage);YAHOO.util.Connect.asyncRequest('GET',trackPage);ProWeb._trackedItems[key]=1;}else{ProWeb._trackedItems[key]++;}}

ProWeb.AlertGridWidget=function(cfg){SiteManager.Widget.initializeConfig(this,cfg);}
ProWeb.AlertGridWidget.titleFormatter=function(elCell,oRecord,oColumn,oData){var newLink=document.createElement('a');newLink.href="http://www.producersweb.com/r/"+oRecord['source']+"/d/contentFocus?adcID="+oRecord['contentID'];newLink.innerHTML=oRecord['title'];newLink.className='contentLink';elCell.innerHTML='';elCell.appendChild(newLink);};YAHOO.lang.extend(ProWeb.AlertGridWidget,SiteManager.GridWidget,{columns:[{key:"startDate",text:"Date",sortable:true,width:"7%",sortOptions:{ascFunction:SiteManager.GridWidget.dateSortAsc,descFunction:SiteManager.GridWidget.dateSortDesc}},{key:"title",text:"Title",formatter:ProWeb.AlertGridWidget.titleFormatter,sortable:true,resizeable:true,width:"48%"},{key:"typeName",text:"Type",sortable:true,resizeable:true,width:"7%"},{key:"intersect",text:"Alert Keyword Matches",sortable:true,resizeable:true,width:"38%"}],fields:["startDate","javaDate","title","contentID","typeName","intersect","source"],isEmptyMessage:'No alerts are available',dataSource:'/r/pweb/p/myproweb/alertGridLoader'});ProWeb.SubscriptionGridWidget=function(cfg){SiteManager.Widget.initializeConfig(this,cfg);}
ProWeb.SubscriptionGridWidget.titleFormatter=function(elCell,oRecord,oColumn,oData){var newLink=document.createElement('a');newLink.href="http://www.producersweb.com/r/pweb/p/pweb/newsLetterViewer?aIDX="+oRecord['formLetter'];newLink.innerHTML=oRecord['niceSubject'];newLink.className='contentLink';elCell.innerHTML='';elCell.appendChild(newLink);};YAHOO.lang.extend(ProWeb.SubscriptionGridWidget,SiteManager.GridWidget,{columns:[{key:"title",text:"Title",sortable:true,width:"22%"},{key:"niceSubject",text:"Subject",type:"link",formatter:ProWeb.SubscriptionGridWidget.titleFormatter,sortable:true,width:"57%"},{key:"startDate",text:"Sent On",sortable:true,width:"15%",sortOptions:{ascFunction:SiteManager.GridWidget.dateSortAsc,descFunction:SiteManager.GridWidget.dateSortDesc}}],fields:["title","niceSubject","startDate","realDate","javaDate","formLetter"],isEmptyMessage:'No subscriptions are available',dataSource:"/r/pweb/p/myproweb/subscriptionGridLoader",defaultGridConfig:{sortedBy:{colKey:"title",dir:"desc"}}});ProWeb.FavoritesWidget=function(cfg){SiteManager.Widget.initializeConfig(this,cfg);}
ProWeb.FavoritesWidget.removeFavorite=function(node){var link=node.href;var callback={success:function(o){var node=o.argument.sourceNode;node.parentNode.parentNode.removeChild(node.parentNode);},failure:function(o){alert('Error');},argument:{sourceNode:node}}
YAHOO.util.Connect.asyncRequest('GET',link,callback,null);return false;}

SiteManager.Pager=function(cfg){SiteManager.Widget.initializeConfig(this,cfg);this.bind();}
SiteManager.Pager.prototype={bodyId:'',itemCount:0,currPos:0,contentStep:0,onLoad:null,boundLists:[],pageButtonActive:'/images/p/slider/slider_pageButton_active.jpg',pageButtonInactive:'/images/p/slider/slider_pageButton_inactive.jpg',initialized:false,bind:function(){SiteManager.Pager.Cache[this.bodyId]=this;var container=document.getElementById(this.bodyId+'_contentsOuter');var items=this.getChildren();if(items.length>0){this.itemCount=items.length-1;this.contentStep=YAHOO.util.Dom.getStyle(container,'width').replace('px','');this.goTo(0);this._buildPageButtons();if(this.onLoad!=null)this.onLoad();}},goTo:function(position,skipAnimation){if(position>=0&&position<=this.itemCount){var scrollTo=position*this.contentStep;var container=document.getElementById(this.bodyId+'_contentsOuter');if(skipAnimation){var children=this.getChildren();var currNode=children[this.currPos];var scrollNode=children[position];scrollNode.style.visibility='hidden';YAHOO.util.Dom.setStyle(scrollNode,'opacity',0);var outAnim=new YAHOO.util.Anim(currNode,{opacity:{to:0}},.5);outAnim.onComplete.subscribe(function(status,results,fnargs){fnargs['container'].scrollLeft=fnargs['scrollTo'];scrollNode.style.visibility='';YAHOO.util.Dom.setStyle(fnargs['sourceNode'],'opacity',1);var inAnim=new YAHOO.util.Anim(fnargs['targetNode'],{opacity:{to:1}},.5);inAnim.animate();},{targetNode:scrollNode,sourceNode:currNode,container:container,scrollTo:scrollTo});outAnim.animate();}else{var myAnim=new YAHOO.util.Scroll(container,{scroll:{to:[scrollTo,container.scrollTop]}},.5,YAHOO.util.Easing.easeOut);myAnim.animate();}
this.currPos=position;var feedback=document.getElementById(this.bodyId+'_feedbackText');if(feedback)feedback.innerHTML=(position+1)+' of '+(this.itemCount+1);var pageChooser=document.getElementById(this.bodyId+'_pageChooser');if(this.initialized&&this.turnPages!==true)ProWeb.track(this.bodyId,this.currPos);if(pageChooser){pageChooser.selectedIndex=position;}
this.updateLists(position,skipAnimation);this._updatePageButtons();var objects=container.getElementsByTagName('object');if(objects.length>0){var children=this.getChildren();for(var i=0;i<children.length;i++){var childObjects=children[i].getElementsByTagName('object');for(var j=0;j<childObjects.length;j++){childObjects[j].style.display=(i==position)?'block':'none';}}}}else if(position<0)this.goTo(0,skipAnimation);else if(position>this.itemCount)this.goTo(this.itemCount,skipAnimation);this.initialized=true;},getChildren:function(){var container=document.getElementById(this.bodyId+'_contentsOuter').getElementsByTagName('div')[0];var retVal=[];for(var i=0;i<container.childNodes.length;i++){if(container.childNodes[i].nodeName&&container.childNodes[i].nodeName.toLowerCase()=='ul')
retVal[retVal.length]=container.childNodes[i];}
return retVal;},left:function(){this.goTo(this.currPos-1);},right:function(){this.goTo(this.currPos+1);},cycleLeft:function(){if(this.currPos>0)this.goTo(this.currPos-1);else this.goTo(this.itemCount,true);},cycleRight:function(){if(this.currPos<this.itemCount)this.goTo(this.currPos+1);else this.goTo(0,true);},updateLists:function(){for(var i=0;i<this.boundLists.length;i++){var list=document.getElementById(this.boundLists[i]);if(list){var counter=-1;for(var j=0;j<list.childNodes.length;j++){if(list.childNodes[j].nodeType==1){counter++;var show=(counter==this.currPos);switch(list.childNodes[j].nodeName.toLowerCase()){case'li':list.childNodes[j].style.display=(show)?'list-item':'none';break;default:list.childNodes[j].style.display=(show)?'block':'none';break;}}}}}},_get:function(section){return document.getElementById(this.bodyId+'_'+section);},_buildPageButtons:function(){var pageButtonContainer=this._get('pageButtonContainer');if(pageButtonContainer){var img;for(var i=0;i<=this.itemCount;i++){img=document.createElement('img');img.src=(i==0)?this.pageButtonActive:this.pageButtonInactive;img.alt='Go to page '+(i+1);YAHOO.util.Event.on(img,'click',new Function('SiteManager.Pager.goTo(this, '+i+')'));pageButtonContainer.appendChild(img);}}},_updatePageButtons:function(){var pageButtonContainer=this._get('pageButtonContainer');if(pageButtonContainer){var images=pageButtonContainer.getElementsByTagName('img');for(var i=0;i<images.length;i++){images[i].src=(i==this.currPos)?this.pageButtonActive:this.pageButtonInactive;}}}};SiteManager.Pager.Cache={};SiteManager.Pager.getFromChild=function(node){while(!SiteManager.Pager.Cache[node.id]&&node.parentNode){node=node.parentNode;}
if(SiteManager.Pager.Cache[node.id])return SiteManager.Pager.Cache[node.id];else return null;}
SiteManager.Pager.left=function(node){var pager=SiteManager.Pager.getFromChild(node);if(pager)pager.left();}
SiteManager.Pager.right=function(node){var pager=SiteManager.Pager.getFromChild(node);if(pager)pager.right();}
SiteManager.Pager.cycleLeft=function(node){var pager=SiteManager.Pager.getFromChild(node);if(pager)pager.cycleLeft();}
SiteManager.Pager.cycleRight=function(node){var pager=SiteManager.Pager.getFromChild(node);if(pager)pager.cycleRight();}
SiteManager.Pager.goToBySelect=function(node){if(node&&node.nodeName&&node.nodeName.toLowerCase()=='select'){var pager=SiteManager.Pager.getFromChild(node);if(pager){pager.goTo(node.options[node.selectedIndex].value,true)}}}
SiteManager.Pager.goTo=function(node,index){var pager=SiteManager.Pager.getFromChild(node);if(pager){pager.goTo(index);}}
SiteManager.TimedPager=function(cfg){SiteManager.Widget.initializeConfig(this,cfg);this.bind();}
YAHOO.lang.extend(SiteManager.TimedPager,SiteManager.Pager,{pauseLength:5000,turnPages:true,onLoad:function(){SiteManager.Pager.Cache[this.bodyId]=this;this.start();},start:function(){this.turnPages=true;YAHOO.util.Dom.removeClass(document.getElementById(this.bodyId),'paused');setTimeout("SiteManager.TimedPager.turnPage('"+this.bodyId+"')",this.pauseLength);this.switchState('start');},stop:function(){this.turnPages=false;YAHOO.util.Dom.addClass(document.getElementById(this.bodyId),'paused');this.switchState('stop');},switchState:function(lastAction){var pauseButton=document.getElementById(this.bodyId+'_pauseButton');if(pauseButton){if(lastAction=='stop'){pauseButton.onclick=new Function('SiteManager.TimedPager.start(this)');YAHOO.util.Dom.addClass(pauseButton,'start');YAHOO.util.Dom.removeClass(pauseButton,'stop');}else{pauseButton.onclick=new Function('SiteManager.TimedPager.stop(this)');YAHOO.util.Dom.removeClass(pauseButton,'start');YAHOO.util.Dom.addClass(pauseButton,'stop');}}}});SiteManager.TimedPager.turnPage=function(bodyId){var pager=SiteManager.Pager.Cache[bodyId];if(pager&&pager.turnPages){pager.cycleRight();setTimeout("SiteManager.TimedPager.turnPage('"+pager.bodyId+"')",pager.pauseLength);}else if(pager.turnPages)console.log('No cached item found for '+bodyId);}
SiteManager.TimedPager.start=function(node){var pager=SiteManager.Pager.getFromChild(node);if(pager&&!pager.turnPages){pager.start();}else console.log('No parent pager found to start above clicked node ('+node.nodeName+', '+node.id+') or turnPages is on ('+pager.turnPages+')');}
SiteManager.TimedPager.stop=function(node){var pager=SiteManager.Pager.getFromChild(node);if(pager&&pager.turnPages){pager.stop();}else console.log('No parent pager found to stop above clicked node ('+node.nodeName+', '+node.id+') or turnPages is off ('+pager.turnPages+')');}
SiteManager.TimedPager.left=function(node){var pager=SiteManager.Pager.getFromChild(node);if(pager){pager.stop();pager.left();}}
SiteManager.TimedPager.right=function(node){var pager=SiteManager.Pager.getFromChild(node);if(pager){pager.stop();pager.right();}}
SiteManager.TimedPager.cycleLeft=function(node){var pager=SiteManager.Pager.getFromChild(node);if(pager){pager.stop();pager.cycleLeft();}}
SiteManager.TimedPager.cycleRight=function(node){var pager=SiteManager.Pager.getFromChild(node);if(pager){pager.stop();pager.cycleRight();}}
SiteManager.TimedPager.goToBySelect=function(node){if(node&&node.nodeName&&node.nodeName.toLowerCase()=='select'){var pager=SiteManager.Pager.getFromChild(node);if(pager){pager.stop();pager.goTo(node.options[node.selectedIndex].value*1,true)}}}
