if(!$_CMJS)
var $_CMJS={};$_CMJS.$=function(element){if(arguments.length>1){for(var i=0,elements=[],length=arguments.length;i<length;i++)
elements.push($_CMJS.$(arguments[i]));return elements;}
if(typeof element=='string')
element=document.getElementById(element);return element;};$_CMJS.getElementsByClassName=function(){if(document.getElementsByClassName&&Array.filter){return function(className,nodeName,parentElement){var s=(parentElement||document).getElementsByClassName(className);if(nodeName&&nodeName!='*'){nodeName=nodeName.toUpperCase();return Array.filter(s,function(el){return el.nodeName==nodeName;});}
else
return[].slice.call(s,0);}}
if(document.evaluate){return function(className,nodeName,parentElement){if(!nodeName)nodeName='*';if(!parentElement)parentElement=document;var results=[],s,i=0,element;s=document.evaluate(".//"+nodeName+"[contains(concat(' ', @class, ' '), ' "+className+" ')]",parentElement,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);while((element=s.snapshotItem(i++)))
results.push(element);return results;}}
return function(className,nodeName,parentElement){if(!nodeName)nodeName='*';if(!parentElement)parentElement=document;var results=[],s,i=0,element;var re=new RegExp('(^|\s)'+className+'(\s|$)'),elementClassName;s=parentElement.getElementsByTagName(nodeName);while((element=s[i++])){if((elementClassName=element.className)&&(elementClassName==className||re.test(elementClassName)))
results.push(element);}
return results;}}();$_CMJS.ObjExtend=function(destination,source){for(var property in source){destination[property]=source[property];}
return destination;};$_CMJS.TryThese=function(){var returnValue;for(var i=0,length=arguments.length;i<length;i++){var lambda=arguments[i];try{returnValue=lambda();break;}catch(e){}}
return returnValue;};$_CMJS.FuncBind=function(){var args=$_CMJS.ArrHelper.$A(arguments);var first=args.shift();var __method=first[0],object=first[1];return function(){return __method.apply(object,args.concat($_CMJS.ArrHelper.$A(arguments)));}};$_CMJS.FuncBindForEvent=function(){var args=$_CMJS.ArrHelper.$A(arguments);var first=args.shift();var __method=first[0],object=first[1];return function(event){return __method.apply(object,[(event||window.event)].concat(args).concat($_CMJS.ArrHelper.$A(arguments)));}};$_CMJS.Class={create:function(){return function(){this.initialize.apply(this,arguments);}}}
$_CMJS.ArrHelper={$A:function(iterable){if(!iterable)return[];if(iterable.toArray){return iterable.toArray();}else{var results=[];for(var i=0,length=iterable.length;i<length;i++)
results.push(iterable[i]);return results;}},include:function(arr,obj){for(var key in arr){if(arr[key]==obj){return true;}}
return false;},map:function(arr,fun){var len=arr.length;if(typeof fun!="function")
throw new TypeError();var res=new Array(len);var thisp=arguments[2];for(var i=0;i<len;i++)
{if(i in arr)
res[i]=fun.call(thisp,arr[i],i,arr);}
return res;},compact:function(arr){var ret=new Array();for(key in arr){if(arr[key]!=null)
ret[key]=arr[key];}
return ret;},reduce:function(){return this.length>1?this:this[0];}}
$_CMJS.StrHelper={ScriptFragment:'(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',toQueryParams:function(str,separator){var match=$_CMJS.StrHelper.strip(str).match(/([^?#]*)(#.*)?$/);if(!match)return{};var params=match[1].split(separator||'&');var hash={};for(var key in params)
{var pair=new String(params[key]);if((pair=pair.split('='))[0]){var name=decodeURIComponent(pair[0]);var value=pair[1]?decodeURIComponent(pair[1]):undefined;if(hash[name]!==undefined){if(hash[name].constructor!=Array)
hash[name]=[hash[name]];if(value)hash[name].push(value);}
else hash[name]=value;}}
return hash;},strip:function(str){return str.replace(/^\s+/,'').replace(/\s+$/,'');},stripScripts:function(str){return str.replace(new RegExp($_CMJS.StrHelper.ScriptFragment,'img'),'');},extractScripts:function(str){var matchAll=new RegExp($_CMJS.StrHelper.ScriptFragment,'img');var matchOne=new RegExp($_CMJS.StrHelper.ScriptFragment,'im');return $_CMJS.ArrHelper.map((str.match(matchAll)||[]),function(scriptTag){return(scriptTag.match(matchOne)||['',''])[1];});},evalScripts:function(str){return $_CMJS.ArrHelper.map($_CMJS.StrHelper.extractScripts(str),function(script){return eval(script)});},camelize:function(str){var parts=str.split('-'),len=parts.length;if(len==1)return parts[0];var camelized=str.charAt(0)=='-'?parts[0].charAt(0).toUpperCase()+parts[0].substring(1):parts[0];for(var i=1;i<len;i++)
camelized+=parts[i].charAt(0).toUpperCase()+parts[i].substring(1);return camelized;}}
$_CMJS.HashHelper={toQueryString:function(obj){var parts=[];for(var key in obj){if(!key)continue;if(obj[key]&&obj[key].constructor==Array){var values=$_CMJS.ArrHelper.compact(obj[key]);if(values.length<2)obj[key]=values.reduce();else{enc_key=encodeURIComponent(key);for(var value_key in values){values[value_key]=values[value_key]!=undefined?encodeURIComponent(values[value_key]):'';parts.push(enc_key+'='+encodeURIComponent(values[value_key]));};continue;}}
if(obj[key]==undefined)obj[key]='';var parts_add=[];parts_add.push(encodeURIComponent(key));parts_add.push(encodeURIComponent(obj[key]));parts.push(parts_add.join('='));}
return parts.join('&');}}
$_CMJS.CMAjax={getTransport:function(){return $_CMJS.TryThese(function(){return new XMLHttpRequest()},function(){return new ActiveXObject('Msxml2.XMLHTTP')},function(){return new ActiveXObject('Microsoft.XMLHTTP')})||false;},activeRequestCount:0}
$_CMJS.CMAjax.Responders={responders:[],register:function(responder){for(var i=0;i<this.responders.length;i++){if(this.responders[i]==responder){return;}}
this.responders[this.responders.length]=responder;},unregister:function(responder){for(var i=0;i<this.responders.length;i++){if(this.responders[i]==responder){this.responders=this.responders.splice(i,1);break;}}},dispatch:function(callback,request,transport,json){for(var i=0;i<this.responders.length;i++){if(typeof this.responders[i][callback]=='function'){try{this.responders[i][callback].apply(this.responders[i],[request,transport,json]);}catch(e){}}}}};$_CMJS.CMAjax.Responders.register({onCreate:function(){$_CMJS.CMAjax.activeRequestCount++;},onComplete:function(){$_CMJS.CMAjax.activeRequestCount--;}});$_CMJS.CMAjax.Base=function(){};$_CMJS.CMAjax.Base.prototype={setOptions:function(options){this.options={method:'post',asynchronous:true,contentType:'application/x-www-form-urlencoded',encoding:'UTF-8',parameters:''}
$_CMJS.ObjExtend(this.options,options||{});this.options.method=this.options.method.toLowerCase();if(typeof this.options.parameters=='string')
this.options.parameters=$_CMJS.StrHelper.toQueryParams(this.options.parameters);}}
$_CMJS.CMAjax.Request=$_CMJS.Class.create();$_CMJS.CMAjax.Request.Events=['Uninitialized','Loading','Loaded','Interactive','Complete'];$_CMJS.CMAjax.Request.prototype=$_CMJS.ObjExtend(new $_CMJS.CMAjax.Base(),{_complete:false,initialize:function(url,options){this.transport=$_CMJS.CMAjax.getTransport();this.setOptions(options);this.request(url);},request:function(url){this.url=url;this.method=this.options.method;var params=this.options.parameters;var onsuccess=this.container?this.container.success:null;if(this.method!='get'&&this.method!='post'){params['_method']=this.method;this.method='post';}
params=$_CMJS.HashHelper.toQueryString(params);if(params&&/Konqueror|Safari|KHTML/.test(navigator.userAgent))params+='&_=';if((this.method=='get'||$_CMJS.is_XHR)&&params)
this.url+=(this.url.indexOf('?')>-1?'&':'?')+params;if($_CMJS.is_XHR)
{return $_CMJS.XHAjaxCall(onsuccess,this.url,this.options.userOnComplete);}else{try{$_CMJS.CMAjax.Responders.dispatch('onCreate',this,this.transport);this.transport.open(this.method.toUpperCase(),this.url,this.options.asynchronous);if(this.options.asynchronous)
setTimeout($_CMJS.FuncBind([function(){this.respondToReadyState(1)},this]),10);this.transport.onreadystatechange=$_CMJS.FuncBind([this.onStateChange,this]);this.setRequestHeaders();var body=this.method=='post'?(this.options.postBody||params):null;this.transport.send(body);if(!this.options.asynchronous&&this.transport.overrideMimeType)
this.onStateChange();}
catch(e){this.dispatchException(e);}}},onStateChange:function(){var readyState=this.transport.readyState;if(readyState>1&&!((readyState==4)&&this._complete))
this.respondToReadyState(this.transport.readyState);},setRequestHeaders:function(){var headers={'X-Requested-With':'XMLHttpRequest','X-Prototype-Version':'CMPrototype','Accept':'text/javascript, text/html, application/xml, text/xml, */*'};if(this.method=='post'){headers['Content-type']=this.options.contentType+
(this.options.encoding?'; charset='+this.options.encoding:'');if(this.transport.overrideMimeType&&(navigator.userAgent.match(/Gecko\/(\d{4})/)||[0,2005])[1]<2005)
headers['Connection']='close';}
if(typeof this.options.requestHeaders=='object'){var extras=this.options.requestHeaders;if(typeof extras.push=='function')
for(var i=0,length=extras.length;i<length;i+=2)
headers[extras[i]]=extras[i+1];else
$H(extras).each(function(pair){headers[pair.key]=pair.value});}
for(var name in headers)
this.transport.setRequestHeader(name,headers[name]);},success:function(){return!this.transport.status||(this.transport.status>=200&&this.transport.status<300);},respondToReadyState:function(readyState){var state=$_CMJS.CMAjax.Request.Events[readyState];var transport=this.transport,json=this.evalJSON();if(state=='Complete'){try{this._complete=true;(this.options['on'+this.transport.status]||this.options['on'+(this.success()?'Success':'Failure')]||function(){})(transport,json);}catch(e){this.dispatchException(e);}
if($_CMJS.StrHelper.strip((this.getHeader('Content-type')||'text/javascript')).match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i))
this.evalResponse();}
try{(this.options['on'+state]||function(){})(transport,json);$_CMJS.CMAjax.Responders.dispatch('on'+state,this,transport,json);}catch(e){this.dispatchException(e);}
if(state=='Complete'){this.transport.onreadystatechange=function(){};}},getHeader:function(name){try{return this.transport.getResponseHeader(name);}catch(e){return null}},evalJSON:function(){try{var json=this.getHeader('X-JSON');return json?eval('('+json+')'):null;}catch(e){return null}},evalResponse:function(){try{return eval(this.transport.responseText);}catch(e){this.dispatchException(e);}},dispatchException:function(exception){(this.options.onException||function(){})(this,exception);$_CMJS.CMAjax.Responders.dispatch('onException',this,exception);}});$_CMJS.CMAjax.Updater=$_CMJS.Class.create();$_CMJS.ObjExtend($_CMJS.ObjExtend($_CMJS.CMAjax.Updater.prototype,$_CMJS.CMAjax.Request.prototype),{initialize:function(container,url,options){this.container={success:(container.success||container),failure:(container.failure||(container.success?null:container))}
this.transport=$_CMJS.CMAjax.getTransport();this.setOptions(options);var onComplete=this.options.onComplete||function(){};this.options.userOnComplete=onComplete;this.options.onComplete=$_CMJS.FuncBind([function(transport,param){this.updateContent();onComplete(transport,param);},this]);this.request(url);},updateContent:function(){var receiver=this.container[this.success()?'success':'failure'];var response=this.transport.responseText;if(!this.options.evalScripts)response=$_CMJS.StrHelper.stripScripts(response);if(receiver=$_CMJS.$(receiver)){if(this.options.insertion)
new this.options.insertion(receiver,response);else
$_CMJS.CMElement.update(receiver,response);}
if(this.success()){if(this.onComplete)
setTimeout($_CMJS.FuncBind([this.onComplete,this]),10);}}});$_CMJS.CMAjax.PeriodicalUpdater=$_CMJS.Class.create();$_CMJS.CMAjax.PeriodicalUpdater.prototype=$_CMJS.ObjExtend(new $_CMJS.CMAjax.Base(),{initialize:function(container,url,options){this.setOptions(options);this.onComplete=this.options.onComplete;this.frequency=(this.options.frequency||2);this.decay=(this.options.decay||1);this.updater={};this.container=container;this.url=url;this.start();},start:function(){this.options.onComplete=$_CMJS.FuncBind([this.updateComplete,this]);this.onTimerEvent();},stop:function(){this.updater.options.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Prototype.emptyFunction).apply(this,arguments);},updateComplete:function(request){if(this.options.decay){this.decay=(request.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=request.responseText;}
this.timer=setTimeout($_CMJS.FuncBind([this.onTimerEvent,this]),this.decay*this.frequency*1000);},onTimerEvent:function(){this.updater=new $_CMJS.CMAjax.Updater(this.container,this.url,this.options);}});$_CMJS.CMElement={update:function(element,html){element=$_CMJS.$(element);html=typeof html=='undefined'?'':html.toString();var tagName=element.tagName.toUpperCase();if($_CMJS.ArrHelper.include(['THEAD','TBODY','TR','TD'],tagName)){var div=document.createElement('div');switch(tagName){case'THEAD':case'TBODY':div.innerHTML='<table><tbody>'+$_CMJS.StrHelper.stripScripts(html)+'</tbody></table>';depth=2;break;case'TR':div.innerHTML='<table><tbody><tr>'+$_CMJS.StrHelper.stripScripts(html)+'</tr></tbody></table>';depth=3;break;case'TD':div.innerHTML='<table><tbody><tr><td>'+$_CMJS.StrHelper.stripScripts(html)+'</td></tr></tbody></table>';depth=4;}
$A(element.childNodes).each(function(node){element.removeChild(node)});depth.times(function(){div=div.firstChild});$A(div.childNodes).each(function(node){element.appendChild(node)});}else{element.innerHTML=$_CMJS.StrHelper.stripScripts(html);}
setTimeout(function(){$_CMJS.StrHelper.evalScripts(html)},10);return element;},visible:function(element){return $_CMJS.$(element).style.display!='none';},toggle:function(element){element=$_CMJS.$(element);$_CMJS.CMElement[$_CMJS.CMElement.visible(element)?'hide':'show'](element);return element;},hide:function(element){$_CMJS.$(element).style.display='none';return element;},show:function(element){$_CMJS.$(element).style.display='';return element;},remove:function(element){element=$_CMJS.$(element);element.parentNode.removeChild(element);return element;},getHeight:function(element){return $_CMJS.CMElement.getDimensions(element).height;},getWidth:function(element){return $_CMJS.CMElement.getDimensions(element).width;},getDimensions:function(element){element=$_CMJS.$(element);var display=$_CMJS.CMElement.getStyle(element,'display');if(display!='none'&&display!=null)
return{width:element.offsetWidth,height:element.offsetHeight};var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;var originalDisplay=els.display;els.visibility='hidden';els.position='absolute';els.display='block';var originalWidth=element.clientWidth;var originalHeight=element.clientHeight;els.display=originalDisplay;els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};},getStyle:function(element,style){element=$_CMJS.$(element);if($_CMJS.ArrHelper.include(['float','cssFloat'],style))
style=(typeof element.style.styleFloat!='undefined'?'styleFloat':'cssFloat');style=$_CMJS.StrHelper.camelize(style);var value=element.style[style];if(!value){if(document.defaultView&&document.defaultView.getComputedStyle){var css=document.defaultView.getComputedStyle(element,null);value=css?css[style]:null;}else if(element.currentStyle){value=element.currentStyle[style];}}
if((value=='auto')&&$_CMJS.ArrHelper.include(['width','height'],style)&&(element.getStyle('display')!='none'))
value=element['offset'+style.capitalize()]+'px';if(window.opera&&$_CMJS.ArrHelper.include(['left','top','right','bottom'],style))
if(Element.getStyle(element,'position')=='static')value='auto';if(style=='opacity'){if(value)return parseFloat(value);if(value=(element.getStyle('filter')||'').match(/alpha\(opacity=(.*)\)/))
if(value[1])return parseFloat(value[1])/100;return 1.0;}
return value=='auto'?null:value;},setStyle:function(element,style){element=$_CMJS.$(element);for(var name in style){var value=style[name];if(name=='opacity'){if(value==1){value=(/Gecko/.test(navigator.userAgent)&&!/Konqueror|Safari|KHTML/.test(navigator.userAgent))?0.999999:1.0;if(/MSIE/.test(navigator.userAgent)&&!window.opera)
element.style.filter=$_CMJS.CMElement.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'');}else if(value==''){if(/MSIE/.test(navigator.userAgent)&&!window.opera)
element.style.filter=$_CMJS.CMElement.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'');}else{if(value<0.00001)value=0;if(/MSIE/.test(navigator.userAgent)&&!window.opera)
element.style.filter=$_CMJS.CMElement.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'')+'alpha(opacity='+value*100+')';}}else if($_CMJS.ArrHelper.include(['float','cssFloat'],name))name=(typeof element.style.styleFloat!='undefined')?'styleFloat':'cssFloat';element.style[$_CMJS.StrHelper.camelize(name)]=value;}
return element;},_attributeTranslations:{names:{colspan:"colSpan",rowspan:"rowSpan",valign:"vAlign",datetime:"dateTime",accesskey:"accessKey",tabindex:"tabIndex",enctype:"encType",maxlength:"maxLength",readonly:"readOnly",longdesc:"longDesc"},values:{_getAttr:function(element,attribute){return element.getAttribute(attribute,2);},_flag:function(element,attribute){return $_CMJS.$(element).hasAttribute(attribute)?attribute:null;},style:function(element){return element.style.cssText.toLowerCase();},title:function(element){var node=element.getAttributeNode('title');return node.specified?node.nodeValue:null;}}},hasAttribute:function(element,attribute){if($_CMJS.$(element).hasAttribute)
return $_CMJS.$(element).hasAttribute(attribute);var t=$_CMJS.CMElement._attributeTranslations;attribute=t.names[attribute]||attribute;return $_CMJS.$(element).getAttributeNode(attribute).specified;},makePositioned:function(element){element=$_CMJS.$(element);var pos=$_CMJS.CMElement.getStyle(element,'position');if(pos=='static'||!pos){element._madePositioned=true;element.style.position='relative';if(window.opera){element.style.top=0;element.style.left=0;}}
return element;},undoPositioned:function(element){element=$_CMJS.$(element);if(element._madePositioned){element._madePositioned=undefined;element.style.position=element.style.top=element.style.left=element.style.bottom=element.style.right='';}
return element;}}
$_CMJS.ObjExtend($_CMJS.CMElement._attributeTranslations.values,{href:$_CMJS.CMElement._attributeTranslations.values._getAttr,src:$_CMJS.CMElement._attributeTranslations.values._getAttr,disabled:$_CMJS.CMElement._attributeTranslations.values._flag,checked:$_CMJS.CMElement._attributeTranslations.values._flag,readonly:$_CMJS.CMElement._attributeTranslations.values._flag,multiple:$_CMJS.CMElement._attributeTranslations.values._flag});$_CMJS.EventHelper={KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,KEY_HOME:36,KEY_END:35,KEY_PAGEUP:33,KEY_PAGEDOWN:34,element:function(event){return event.target||event.srcElement;},isLeftClick:function(event){return(((event.which)&&(event.which==1))||((event.button)&&(event.button==1)));},pointerX:function(event){return event.pageX||(event.clientX+
(document.documentElement.scrollLeft||document.body.scrollLeft));},pointerY:function(event){return event.pageY||(event.clientY+
(document.documentElement.scrollTop||document.body.scrollTop));},stop:function(event){if(event.preventDefault){event.preventDefault();event.stopPropagation();}else{event.returnValue=false;event.cancelBubble=true;}},findElement:function(event,tagName){var element=$_CMJS.EventHelper.element(event);while(element.parentNode&&(!element.tagName||(element.tagName.toUpperCase()!=tagName.toUpperCase())))
element=element.parentNode;return element;},observers:false,_observeAndCache:function(element,name,observer,useCapture){if(!this.observers)this.observers=[];if(element.addEventListener){this.observers.push([element,name,observer,useCapture]);element.addEventListener(name,observer,useCapture);}else if(element.attachEvent){this.observers.push([element,name,observer,useCapture]);element.attachEvent('on'+name,observer);}},unloadCache:function(){if(!$_CMJS.EventHelper.observers)return;for(var i=0,length=$_CMJS.EventHelper.observers.length;i<length;i++){$_CMJS.EventHelper.stopObserving.apply(this,$_CMJS.EventHelper.observers[i]);$_CMJS.EventHelper.observers[i][0]=null;}
$_CMJS.EventHelper.observers=false;},observe:function(element,name,observer,useCapture){element=$_CMJS.$(element);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.attachEvent))
name='keydown';$_CMJS.EventHelper._observeAndCache(element,name,observer,useCapture);},stopObserving:function(element,name,observer,useCapture){element=$_CMJS.$(element);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.detachEvent))
name='keydown';if(element.removeEventListener){element.removeEventListener(name,observer,useCapture);}else if(element.detachEvent){try{element.detachEvent('on'+name,observer);}catch(e){}}}}
$_CMJS.CMAbstract=new Object();$_CMJS.CMAbstract.CMInsertion=function(adjacency){this.adjacency=adjacency;}
$_CMJS.CMAbstract.CMInsertion.prototype={initialize:function(element,content){this.element=$_CMJS.$(element);this.content=$_CMJS.StrHelper.stripScripts(content);if(this.adjacency&&this.element.insertAdjacentHTML){try{this.element.insertAdjacentHTML(this.adjacency,this.content);}catch(e){var tagName=this.element.tagName.toUpperCase();if(['TBODY','TR'].include(tagName)){this.insertContent(this.contentFromAnonymousTable());}else{throw e;}}}else{this.range=this.element.ownerDocument.createRange();if(this.initializeRange)this.initializeRange();this.insertContent([this.range.createContextualFragment(this.content)]);}
setTimeout(function(){$_CMJS.StrHelper.evalScripts(content)},10);},contentFromAnonymousTable:function(){var div=document.createElement('div');div.innerHTML='<table><tbody>'+this.content+'</tbody></table>';return $_CMJS.ArrHelper.$A(div.childNodes[0].childNodes[0].childNodes);}}
$_CMJS.CMInsertion=new Object();$_CMJS.CMInsertion.Before=$_CMJS.Class.create();$_CMJS.CMInsertion.Before.prototype=$_CMJS.ObjExtend(new $_CMJS.CMAbstract.CMInsertion('beforeBegin'),{initializeRange:function(){this.range.setStartBefore(this.element);},insertContent:function(fragments){for(var i=0,len=fragments.length;i<len;i++){this.element.parentNode.insertBefore(fragments[i],this.element);}}});$_CMJS.CMInsertion.Top=$_CMJS.Class.create();$_CMJS.CMInsertion.Top.prototype=$_CMJS.ObjExtend(new $_CMJS.CMAbstract.CMInsertion('afterBegin'),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(true);},insertContent:function(fragments){for(var i=fragments.length,len=0;i>=len;i--){this.element.insertBefore(fragments[i],this.element.firstChild);}}});$_CMJS.CMInsertion.Bottom=$_CMJS.Class.create();$_CMJS.CMInsertion.Bottom.prototype=$_CMJS.ObjExtend(new $_CMJS.CMAbstract.CMInsertion('beforeEnd'),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(this.element);},insertContent:function(fragments){for(var i=0,len=fragments.length;i<len;i++){this.element.appendChild(fragments[i]);}}});$_CMJS.CMInsertion.After=$_CMJS.Class.create();$_CMJS.CMInsertion.After.prototype=$_CMJS.ObjExtend(new $_CMJS.CMAbstract.CMInsertion('afterEnd'),{initializeRange:function(){this.range.setStartAfter(this.element);},insertContent:function(fragments){for(var i=0,len=fragments.length;i<len;i++){this.element.parentNode.insertBefore(fragments[i],this.element.nextSibling);}}});$_CMJS.CMForm={serialize:function(elements,getHash){var data=new Array();for(var i=0,len=elements.length;i<len;i++){var element=elements[i];if(!element.disabled&&element.name){var key=element.name,value=$_CMJS.CMForm.Element.getValue(element);if(value!=undefined){if(data[key]){if(data[key].constructor!=Array)data[key]=[data[key]];data[key].push(value);}
else data[key]=value;}}}
return getHash?data:$_CMJS.HashHelper.toQueryString(data);}}
$_CMJS.CMForm.Element={serialize:function(element){element=$_CMJS.$(element);if(!element.disabled&&element.name){var value=$_CMJS.CMForm.Element.getValue(element);if(value!=undefined){var pair={};pair[element.name]=value;return $_CMJS.HashHelper.toQueryString(pair);}}
return'';},getValue:function(element){element=$_CMJS.$(element);var method=element.tagName.toLowerCase();return $_CMJS.CMForm.Element.Serializers[method](element);},clear:function(element){$_CMJS.$(element).value='';return element;},present:function(element){return $_CMJS.$(element).value!='';},activate:function(element){element=$_CMJS.$(element);element.focus();if(element.select&&(element.tagName.toLowerCase()!='input'||!['button','reset','submit'].include(element.type)))
element.select();return element;},disable:function(element){element=$_CMJS.$(element);element.disabled=true;return element;},enable:function(element){element=$_CMJS.$(element);element.blur();element.disabled=false;return element;}}
$_CMJS.CMForm.Element.Serializers={input:function(element){switch(element.type.toLowerCase()){case'checkbox':case'radio':return $_CMJS.CMForm.Element.Serializers.inputSelector(element);default:return $_CMJS.CMForm.Element.Serializers.textarea(element);}},inputSelector:function(element){return element.checked?element.value:null;},textarea:function(element){return element.value;},select:function(element){return this[element.type=='select-one'?'selectOne':'selectMany'](element);},selectOne:function(element){var index=element.selectedIndex;return index>=0?this.optionValue(element.options[index]):null;},selectMany:function(element){var values,length=element.length;if(!length)return null;for(var i=0,values=[];i<length;i++){var opt=element.options[i];if(opt.selected)values.push(this.optionValue(opt));}
return values;},optionValue:function(opt){return $_CMJS.CMElement.hasAttribute(opt,'value')?opt.value:opt.text;}}
$_CMJS.CMAbstract.CMTimedObserver=function(){}
$_CMJS.CMAbstract.CMTimedObserver.prototype={initialize:function(element,frequency,callback){this.frequency=frequency;this.element=$_CMJS.$(element);this.callback=callback;this.lastValue=this.getValue();this.registerCallback();},registerCallback:function(){setInterval($_CMJS.FuncBind([this.onTimerEvent,this]),this.frequency*1000);},onTimerEvent:function(){var value=this.getValue();var changed=('string'==typeof this.lastValue&&'string'==typeof value?this.lastValue!=value:String(this.lastValue)!=String(value));if(changed){this.callback(this.element,value);this.lastValue=value;}}}
$_CMJS.CMForm.Element.Observer=$_CMJS.Class.create();$_CMJS.CMForm.Element.Observer.prototype=$_CMJS.ObjExtend(new $_CMJS.CMAbstract.CMTimedObserver(),{getValue:function(){return $_CMJS.CMForm.Element.getValue(this.element);}});$_CMJS.CMForm.Observer=$_CMJS.Class.create();$_CMJS.CMForm.Observer.prototype=$_CMJS.ObjExtend(new $_CMJS.CMAbstract.CMTimedObserver(),{getValue:function(){return $_CMJS.CMForm.serialize(this.element);}});var detect=navigator.userAgent.toLowerCase();var OS,browser,version,total,thestring;function getBrowserInfo(){if(checkIt('konqueror')){browser="Konqueror";OS="Linux";}
else if(checkIt('safari'))browser="Safari"
else if(checkIt('omniweb'))browser="OmniWeb"
else if(checkIt('opera'))browser="Opera"
else if(checkIt('webtv'))browser="WebTV";else if(checkIt('icab'))browser="iCab"
else if(checkIt('msie'))browser="Internet Explorer"
else if(!checkIt('compatible')){browser="Netscape Navigator"
version=detect.charAt(8);}
else browser="An unknown browser";if(!version)version=detect.charAt(place+thestring.length);if(!OS){if(checkIt('linux'))OS="Linux";else if(checkIt('x11'))OS="Unix";else if(checkIt('mac'))OS="Mac"
else if(checkIt('win'))OS="Windows"
else OS="an unknown operating system";}}
function checkIt(string){place=detect.indexOf(string)+1;thestring=string;return place;}
$_CMJS.EventHelper.observe(window,'load',initialize,false);$_CMJS.EventHelper.observe(window,'load',getBrowserInfo,false);$_CMJS.EventHelper.observe(window,'unload',$_CMJS.EventHelper.unloadCache,false);var lightbox=$_CMJS.Class.create();lightbox.prototype={yPos:0,xPos:0,initialize:function(ctrl){if(window.cm)cm.trace("lightbox initialize start");this.content=ctrl.rel;$_CMJS.EventHelper.observe(ctrl,'click',$_CMJS.FuncBindForEvent([this.activate,this]),false);if(window.cm)cm.trace("lightbox initialize done");},activate:function(){if(window.cm)cm.trace("lightbox activate start");if(browser=='Internet Explorer'){this.getScroll();this.prepareIE('100%','hidden');this.setScroll(0,0);this.hideSelects('hidden');}
else
{if($_CMJS.$('wrapper'))
$_CMJS.$('overlay').style.height=$_CMJS.CMElement.getHeight('wrapper')+20+"px";else
$_CMJS.$('overlay').style.height=$_CMJS.CMElement.getHeight(document.getElementsByTagName('body')[0])+"px";$_CMJS.$(this.content).style.position="fixed";}
this.displayLightbox("block");if(window.cm)cm.trace("lightbox activate done");},prepareIE:function(height,overflow){bod=document.getElementsByTagName('body')[0];bod.style.height=height;bod.style.overflow=overflow;htm=document.getElementsByTagName('html')[0];htm.style.height=height;htm.style.overflow=overflow;},hideSelects:function(visibility){selects=document.getElementsByTagName('select');for(i=0;i<selects.length;i++){selects[i].style.visibility=visibility;}},getScroll:function(){if(self.pageYOffset){this.yPos=self.pageYOffset;}else if(document.documentElement&&document.documentElement.scrollTop){this.yPos=document.documentElement.scrollTop;}else if(document.body){this.yPos=document.body.scrollTop;}},setScroll:function(x,y){window.scrollTo(x,y);},displayLightbox:function(display){$_CMJS.$('overlay').style.display=display;if(window.cm)cm.trace("lightbox displaylightbox: "+this.content);$_CMJS.$(this.content).style.display=display;if(display!='none')this.actions();},actions:function(){lbActions=$_CMJS.getElementsByClassName('lbAction');for(i=0;i<lbActions.length;i++){$_CMJS.EventHelper.observe(lbActions[i],'click',$_CMJS.FuncBindForEvent([this[lbActions[i].rel],this]),false);lbActions[i].onclick=function(){return false;};}
$_CMJS.EventHelper.observe($_CMJS.$('overlay'),'click',$_CMJS.FuncBindForEvent([this['deactivate'],this]),false);$_CMJS.$('overlay').onclick=function(){return false;};},deactivate:function(){if(browser=="Internet Explorer"){this.setScroll(0,this.yPos);this.prepareIE("auto","auto");this.hideSelects("visible");}
this.displayLightbox("none");}}
function initialize(){addLightboxMarkup();lbox=$_CMJS.getElementsByClassName('lbOn');for(i=0;i<lbox.length;i++){valid=new lightbox(lbox[i]);}}
function addLightboxMarkup(){bod=document.getElementsByTagName('body')[0];overlay=document.createElement('div');overlay.id='overlay';bod.appendChild(overlay);}
function addLightboxAndShow(link_id){if(window.cm)cm.trace("addLightboxAndShow start");valid=new lightbox($_CMJS.$(link_id));valid.activate();if(window.cm)cm.trace("addLightboxAndShow done");}
function addLightbox(link_id){valid=new lightbox($_CMJS.$(link_id))}
function hideLightboxBg(){if($_CMJS.$('overlay'))$_CMJS.$('overlay').style.display='none';}
if($_CMJS&&$_CMJS.is_XHR)
{initialize();getBrowserInfo();}
function submitenter(myfield,e){var k;if(window.event)k=window.event.keyCode;else if(e)k=e.which;else return true;if(k==13){if(myfield.form.onsubmit())myfield.form.submit();return false;}
else return true;}
var ColourPicker=$_CMJS.Class.create();ColourPicker.prototype={colourArray:new Array(),element:null,trigger:null,tableShown:false,initialize:function(element,trigger,tableClass){this.colourArray=new Array('FFFFCC','FFFF66','FFCC66','F2984C','E1771E','B47B10','A9501B','6F3C1B','804000','CC0000','940F04','660000','C3D9FF','99C9FF','66B5FF','3D81EE','0066CC','6C82B5','32527A','2D6E89','006699','215670','003366','000033','CAF99B','80FF00','00FF80','78B749','2BA94F','38B63C','0D8F63','2D8930','1B703A','11593C','063E3F','002E3F','FFBBE8','E895CC','FF6FCF','C94093','9D1961','800040','800080','72179D','6728B2','6131BD','341473','400058','FFFFFF','E6E6E6','CCCCCC','B3B3B3','999999','808080','7F7F7F','666666','4C4C4C','333333','191919','000000');this.numberOfColumns=12;this.element=$_CMJS.$(element);this.trigger=$_CMJS.$(trigger);this.tableClass=tableClass;this.trigger.onclick=$_CMJS.FuncBindForEvent([this.toggleTable,this]);this.buildTable();},destroy:function(){this.element=null;this.trigger=null;},buildTable:function(){if(!this.tableShown){var html=["<table id=\"",this.trigger.id,"ColourPicker\" style=\"display: none\" class=\"",this.tableClass,"\">"]
for(i=0;i<this.colourArray.length;i++){if(i%this.numberOfColumns==0){html.push("<tr>");}
html=html.concat(["<td style=\"background-color: #",this.colourArray[i],";\" title=\"#",this.colourArray[i],"\" onClick=\"$_CMJS.$('",this.element.id,"').value = '#",this.colourArray[i],"'; $_CMJS.$('",this.trigger.id,"ColourPicker').style.display = 'none'; $_CMJS.$('",this.element.id,"').onchange();return false;","\"/>"]);if(i%this.numberOfColumns==this.numberOfColumns-1){html.push("</tr>");}}
html=html.concat(["<tr><td align=\"center\" colspan=\"",this.numberOfColumns,"\" style=\"background-color: #FFFFFF;\" title=\"None\" onClick=\"$_CMJS.$('",this.element.id,"').value = ''; $_CMJS.$('",this.trigger.id,"ColourPicker').style.display = 'none'; $_CMJS.$('",this.element.id,"').onchange();return false;\">None</td>"]);html.push("</table>");new $_CMJS.CMInsertion.After(this.trigger,html.join(""));}},toggleTable:function(sender){var obj=$_CMJS.$($_CMJS.EventHelper.element(sender).id+'ColourPicker');obj.style.display=(obj.style.display=='block'?'none':'block');},showTable:function(){var obj=$_CMJS.$(this.trigger.id+'ColourPicker');obj.style.display='block';},hideTable:function(){var obj=$_CMJS.$(this.trigger.id+'ColourPicker');obj.style.display='none';}}
var states={IDLE:0,NEW_TEXT:1,EDIT_TEXT:2,SAVING_TEXT:3,MOVING:4,RESIZING:5,DELETING:6};cmP=function(){};cmP.prototype={init:function(e){this.children=[];this.order=[];this.state=states.IDLE
this.focus=null
this.mouseOffset={x:0,y:0};this.startCoords={x:0,y:0};this.resizeDirection="";this.width_toggle=1;this.last_request=0;this.debug=0;if($_CMJS.$('wrapper'))
{this.editable=true
max_wrapper(document.documentElement.clientWidth,document.documentElement.clientHeight);}
else
{this.editable=false}
$_CMJS.EventHelper.observe(document,'mousemove',$_CMJS.FuncBindForEvent([this.mouseMove,this]),false);$_CMJS.EventHelper.observe(document,'mouseup',$_CMJS.FuncBindForEvent([this.mouseUp,this]),false);if(this.editable)
$_CMJS.EventHelper.observe(document,'click',$_CMJS.FuncBindForEvent([this.click,this]),false);else
$_CMJS.EventHelper.observe(document,'click',$_CMJS.FuncBindForEvent([this.clickNoEdit,this]),false);},trace:function(msg){if(this.debug)$_CMJS.$('debug_div').innerHTML=msg+"<br>"+$_CMJS.$('debug_div').innerHTML;},mouseMove:function(e){if(!e)var e=window.event;var mousePos=findMouseXY(e);if(this.state==states.MOVING)
{if(this.focus&&this.focus.container)
{this.focus.container.style.position='absolute';this.focus.container.style.top=mousePos.y-this.mouseOffset.y+"px";this.focus.container.style.left=mousePos.x-this.mouseOffset.x+"px";var surf=this.overlapSurface(mousePos);if(surf&&surf!=this.highlighted_surf)
{if(this.highlighted_surf)
this.highlighted_surf.unhighlight();this.highlighted_surf=surf;surf.highlight();}
else if(!surf&&this.highlighted_surf)
{this.highlighted_surf.unhighlight();this.highlighted_surf=null;}
return false;}
else
{this.state=states.IDLE;}}
else if(this.state==states.RESIZING)
{if(this.focus)
{_posX=parseInt(this.focus.container.style.left,10)+parseInt(this.focus.elem.style.left,10);_posY=parseInt(this.focus.container.style.top,10)+parseInt(this.focus.elem.style.top,10);_sizeX=parseInt(this.focus.elem.style.width,10);_sizeY=parseInt(this.focus.elem.style.height,10);if(this.resizeDirection.indexOf("n")>-1)
{_sizeY=this.focus.size.y+this.startCoords.y-mousePos.y;_posY=this.focus.pos.y-this.startCoords.y+mousePos.y-this.focus.border_width;}
else if(this.resizeDirection.indexOf("s")>-1)
{_sizeY=this.focus.size.y-this.startCoords.y+mousePos.y;}
this.width_toggle*=-1;if(this.resizeDirection.indexOf("w")>-1)
{_sizeX=this.focus.size.x+this.startCoords.x-mousePos.x+this.width_toggle;_posX=this.focus.pos.x-this.startCoords.x+mousePos.x-this.focus.border_width;}
else if(this.resizeDirection.indexOf("e")>-1)
{_sizeX=this.focus.size.x-this.startCoords.x+mousePos.x+this.width_toggle;}
if(this.resizeDirection.length==2&&this.focus.resizeType=="proportional")
{ratio=this.focus.size.x/this.focus.size.y;if(this.resizeDirection=="nw")
{if(_sizeX/_sizeY>ratio)
{_sizeX=_sizeY*ratio;_posX=this.focus.pos.x+this.focus.size.x-_sizeX;}
else
{_sizeY=_sizeX/ratio;_posY=this.focus.pos.y+this.focus.size.y-_sizeY;}}
else if(this.resizeDirection=="ne")
{if(_sizeX/_sizeY>ratio)
{_sizeX=_sizeY*ratio;}
else
{_sizeY=_sizeX/ratio;_posY=this.focus.pos.y+this.focus.size.y-_sizeY;}}
else
_sizeY=_sizeX/ratio;}
this.focus.elem.style.height=_sizeY+"px";this.focus.elem.style.width=_sizeX+"px";this.focus.container.style.left=_posX-parseInt(this.focus.elem.style.left,10)+"px";this.focus.container.style.top=_posY-parseInt(this.focus.elem.style.top,10)+"px";this.focus.container.style.height=_sizeY+parseInt(this.focus.elem.style.top,10)+parseInt(this.focus.elem.style.left,10)+"px";this.focus.container.style.width=_sizeX+parseInt(this.focus.elem.style.left,10)*2+"px";this.focus.resize();return false;}
else
{this.state=states.IDLE;}}
else if((this.state==states.NEW_TEXT||this.state==states.EDIT_TEXT)&&$_CMJS.EventHelper.element(e).id=='wrapper')
{cm.trace("mouseMove default");$_CMJS.EventHelper.element(e).style.cursor="default";}
else if($_CMJS.EventHelper.element(e).id=='wrapper')
{cm.trace("mouseMove text");$_CMJS.EventHelper.element(e).style.cursor="text";}
else if($_CMJS.EventHelper.element(e).nodeName=='A')
{cm.trace("mouseMove pointer");$_CMJS.EventHelper.element(e).style.cursor="pointer";}
else if($_CMJS.EventHelper.element(e).nodeName=='IMG'&&$_CMJS.EventHelper.element(e).parentNode.nodeName=='A')
{cm.trace("mouseMove pointer");$_CMJS.EventHelper.element(e).style.cursor="pointer";}},mouseUp:function(e){cm.trace("cm mouseup");if(!e)var e=window.event;if(this.state==states.MOVING)
{if(this.focus)
{this.focus.otherMouseUp(e);}
else
{this.state=states.IDLE;}}
else if(this.state==states.RESIZING)
{if(this.focus)
{this.focus.otherMouseUp(e);}
else
{this.state=states.IDLE;}}},click:function(e){cm.trace("cm click");if(!e)var e=window.event;if(cm.editMode=="on"&&$_CMJS.EventHelper.element(e).id=='wrapper')
{if(this.state==states.EDIT_TEXT)
{this.focus.otherClick(e);}
else
{var mousePos=findMouseXY(e);var outerdiv=$_CMJS.$('new_txt_container');outerdiv.parentNode.removeChild(outerdiv);$_CMJS.$('non_surface').appendChild(outerdiv);outerdiv.style.position="absolute";outerdiv.style.left=mousePos.x+"px";outerdiv.style.top=mousePos.y+"px";if(cm.order.length>0)
{outerdiv.style.zIndex=cm.order[cm.order.length-1].z+1;}
else
{outerdiv.style.zIndex=1;}
$_CMJS.CMElement.show(outerdiv);var new_txt=new cm_T($_CMJS.$('new_txt'));this.addChild(new_txt);new_txt.parent=null;new_txt.contentClick(e);}}
else if($_CMJS.EventHelper.element(e).id=='wrapper'&&this.state==states.EDIT_TEXT)
{this.focus.otherClick(e);}},clickNoEdit:function(e){cm.trace("cm clicknoedit");if(!e)var e=window.event;if($_CMJS.EventHelper.element(e).id=='wrapper_noedit'&&this.state==states.EDIT_TEXT)
this.focus.otherClick(e);},handleResponseText:function(id){updateDiv=$_CMJS.$(id+"_txt_container").parentNode;newdiv=updateDiv.removeChild($_CMJS.$(id+"_txt_container"))
updateDiv.parentNode.appendChild(newdiv);var new_text=new cm_T($_CMJS.$(id+"_txt"));newdiv=updateDiv.removeChild($_CMJS.$("new_txt_container"))
updateDiv.parentNode.appendChild(newdiv);var surf_id=$_CMJS.$(id+"_txt_surf_id")
if(surf_id)
{var surf=this.get_surf_obj(surf_id.value)
surf.addChild(new_text);}
else
{this.addChild(new_text);}
updateDiv.parentNode.removeChild(updateDiv);delete updateDiv;},handleResponseVideo:function(id){updateDiv=$_CMJS.$(id+"_vid_container").parentNode;newdiv=updateDiv.removeChild($_CMJS.$(id+"_vid_container"))
updateDiv.parentNode.appendChild(newdiv);var new_vid=new cm_Embedvideo($_CMJS.$(id+"_vid"));var surf_id=$_CMJS.$(id+"_vid_surf_id")
if(surf_id)
{var surf=this.get_surf_obj(surf_id.value)
surf.addChild(new_vid);}
else
{this.addChild(new_vid);}
newdiv=updateDiv.removeChild($_CMJS.$("new_txt_container"))
updateDiv.parentNode.appendChild(newdiv);updateDiv.parentNode.removeChild(updateDiv);delete updateDiv;this.focus=null;this.state=states.IDLE;},handleResponseEmbedImage:function(id){updateDiv=$_CMJS.$(id+"_img_container").parentNode;newdiv=updateDiv.removeChild($_CMJS.$(id+"_img_container"))
updateDiv.parentNode.appendChild(newdiv);var new_img=new cm_Embedimage($_CMJS.$(id+"_img"));var surf_id=$_CMJS.$(id+"_img_surf_id")
if(surf_id)
{var surf=this.get_surf_obj(surf_id.value)
surf.addChild(new_img);}
else
{this.addChild(new_img);}
newdiv=updateDiv.removeChild($_CMJS.$("new_txt_container"))
updateDiv.parentNode.appendChild(newdiv);updateDiv.parentNode.removeChild(updateDiv);delete updateDiv;this.focus=null;this.state=states.IDLE;},handleResponseUploadFile:function(id){updateDiv=$_CMJS.$(id+"_file_container").parentNode;newdiv=updateDiv.removeChild($_CMJS.$(id+"_file_container"))
updateDiv.parentNode.appendChild(newdiv);var new_file=new cm_Uploadfile($_CMJS.$(id+"_file"));var surf_id=$_CMJS.$(id+"_file_surf_id")
if(surf_id)
{var surf=this.get_surf_obj(surf_id.value)
surf.addChild(new_file);}
else
{this.addChild(new_file);}
newdiv=updateDiv.removeChild($_CMJS.$("new_txt_container"))
updateDiv.parentNode.appendChild(newdiv);updateDiv.parentNode.removeChild(updateDiv);delete updateDiv;this.focus=null;this.state=states.IDLE;},handleResponseWidget:function(id){updateDiv=$_CMJS.$(id+"_container").parentNode;newdiv=updateDiv.removeChild($_CMJS.$(id+"_container"))
updateDiv.parentNode.appendChild(newdiv);var new_widget=new cm_Widget($_CMJS.$(id));var surf_id=$_CMJS.$(id+"_widget_surf_id")
if(surf_id)
{var surf=this.get_surf_obj(surf_id.value)
surf.addChild(new_widget);}
else
{this.addChild(new_widget);}
newdiv=updateDiv.removeChild($_CMJS.$("new_txt_container"))
updateDiv.parentNode.appendChild(newdiv);updateDiv.parentNode.removeChild(updateDiv);delete updateDiv;this.focus=null;this.state=states.IDLE;},handleResponseSurface:function(id){updateDiv=$_CMJS.$(id+"_container").parentNode;newdiv=updateDiv.removeChild($_CMJS.$(id+"_container"))
updateDiv.parentNode.appendChild(newdiv);var new_surf=new cm_Surface($_CMJS.$(id));this.addChild(new_surf);init_surf_contents(new_surf);newdiv=updateDiv.removeChild($_CMJS.$("new_txt_container"))
updateDiv.parentNode.appendChild(newdiv);updateDiv.parentNode.removeChild(updateDiv);delete updateDiv;this.focus=null;this.state=states.IDLE;},addChild:function(newChild){this.children[this.children.length]=newChild;var _z=parseInt(newChild.container.style.zIndex,10);var inserted_z=false;for(var i=0;i<this.order.length;i++)
{if(_z<this.order[i].z&&(i==0||_z>=this.order[i-1].z))
{this.order.splice(i,0,{type:newChild.type,z:_z,id:newChild.elem.id});inserted_z=true;break;}}
if(!inserted_z)
{this.order.push({type:newChild.type,z:_z,id:newChild.elem.id});}},removeChild:function(oldChild){for(var i=0;i<this.children.length;i++)
{if(this.children[i]==oldChild)
{this.children.splice(i,1);break;}}
for(var i=0;i<this.order.length;i++)
{if(this.order[i].id==oldChild.elem.id&&this.order[i].type==oldChild.type)
{this.order.splice(i,1);break;}}},orderUp:function(obj){for(var i=0;i<this.order.length;i++)
{if(this.order[i].id==obj.elem.id&&this.order[i].type==obj.type)
{if(i<this.order.length-1)
{swap_z=this.order[i+1].z
this.order[i+1].z=this.order[i].z
$_CMJS.$(this.order[i+1].id+"_container").style.zIndex=this.order[i].z;this.order[i].z=swap_z
obj.container.style.zIndex=swap_z;swap_obj=this.order[i+1]
this.order[i+1]=this.order[i]
this.order[i]=swap_obj;}
break;}}
this.saveOrder();},orderDown:function(obj){for(var i=0;i<this.order.length;i++)
{if(this.order[i].id==obj.elem.id&&this.order[i].type==obj.type)
{if(i>0)
{swap_z=this.order[i-1].z
this.order[i-1].z=this.order[i].z
$_CMJS.$(this.order[i-1].id+"_container").style.zIndex=this.order[i].z;this.order[i].z=swap_z
obj.container.style.zIndex=swap_z;swap_obj=this.order[i-1]
this.order[i-1]=this.order[i]
this.order[i]=swap_obj;}
break;}}
this.saveOrder();},saveOrder:function(){},overlapSurface:function(pos){for(var i=0;i<this.children.length;i++)
{if(this.children[i].type=="SURFACE")
{var surf_pos=this.children[i].pos
var surf_size=this.children[i].size
if(pos.x>surf_pos.x&&pos.x<surf_pos.x+surf_size.x&&pos.y>surf_pos.y&&pos.y<surf_pos.y+surf_size.y)
{return this.children[i];}}}
return false;},get_surf_obj:function(surf_id){for(var i=0;i<this.children.length;i++)
{if(this.children[i].type=="SURFACE"&&this.children[i].elem.id==surf_id+"_surface")
{return this.children[i]}}}}
var cm;if(!cm){cm=new cmP();}
cm_O=function(elem,moveArea,moveIcon,resizeArea,contentArea,deleteArea,container,upArea,downArea){this.remove=function(){this.stopObservingAll();this.state=states.DELETING;if(this.parent)
{this.parent.removeChild(this);}
else
{cm.removeChild(this);}}
this.destroy=function(){this.remove();this.elem=null;this.moveArea=null;this.moveIcon=null;this.resizeArea=null;this.contentArea=null;this.deleteArea=null;this.container=null;this.upArea=null;this.downArea=null;};this.stopObservingAll=function(){if(this.resizeArea)
{$_CMJS.EventHelper.stopObserving(this.container,'mousedown',this.boundResizeMouseDown,false);$_CMJS.EventHelper.stopObserving(this.container,'mouseup',this.boundResizeMouseUp,false);$_CMJS.EventHelper.stopObserving(this.container,'mousemove',this.boundResizeMouseMove,false);}
if(this.contentArea)
{$_CMJS.EventHelper.stopObserving(this.contentArea,'click',this.boundContentClick,false);$_CMJS.EventHelper.stopObserving(this.contentArea,'mousedown',this.boundContentMouseDown,false);$_CMJS.EventHelper.stopObserving(this.contentArea,'mouseup',this.boundContentMouseUp,false);}
if(this.container)
{$_CMJS.EventHelper.stopObserving(this.container,'mouseover',this.boundContentMouseOver,false);$_CMJS.EventHelper.stopObserving(this.container,'mouseout',this.boundContentMouseOut,false);}
if(this.moveArea)
{$_CMJS.EventHelper.stopObserving(this.moveArea,'mousedown',this.boundMoveMouseDown,false);$_CMJS.EventHelper.stopObserving(this.moveArea,'mouseup',this.boundMoveMouseUp,false);$_CMJS.EventHelper.stopObserving(this.moveArea,'mousemove',this.boundMoveMouseMove,false);}
if(this.moveIcon)
{$_CMJS.EventHelper.stopObserving(this.moveIcon,'mousedown',this.boundMoveMouseDown,false);$_CMJS.EventHelper.stopObserving(this.moveIcon,'mouseup',this.boundMoveMouseUp,false);$_CMJS.EventHelper.stopObserving(this.moveIcon,'mousemove',this.boundMoveMouseMove,false);}
if(this.deleteArea)
{$_CMJS.EventHelper.stopObserving(this.deleteArea,'click',this.boundDeleteClick,false);}
if(this.upArea)
{$_CMJS.EventHelper.stopObserving(this.upArea,'click',this.boundUpClick,false);}
if(this.downArea)
{$_CMJS.EventHelper.stopObserving(this.downArea,'click',this.boundDownClick,false);;}}
this.startObservingAll=function(){if(this.resizeArea)
{$_CMJS.EventHelper.observe(this.container,'mousedown',this.boundResizeMouseDown,false);$_CMJS.EventHelper.observe(this.container,'mouseup',this.boundResizeMouseUp,false);$_CMJS.EventHelper.observe(this.container,'mousemove',this.boundResizeMouseMove,false);}
if(this.contentArea)
{$_CMJS.EventHelper.observe(this.contentArea,'click',this.boundContentClick,false);$_CMJS.EventHelper.observe(this.contentArea,'mousedown',this.boundContentMouseDown,false);$_CMJS.EventHelper.observe(this.contentArea,'mouseup',this.boundContentMouseUp,false);}
if(this.container)
{$_CMJS.EventHelper.observe(this.container,'mouseover',this.boundContentMouseOver,false);$_CMJS.EventHelper.observe(this.container,'mouseout',this.boundContentMouseOut,false);}
if(this.moveArea)
{$_CMJS.EventHelper.observe(this.moveArea,'mousedown',this.boundMoveMouseDown,false);$_CMJS.EventHelper.observe(this.moveArea,'mouseup',this.boundMoveMouseUp,false);$_CMJS.EventHelper.observe(this.moveArea,'mousemove',this.boundMoveMouseMove,false);}
if(this.moveIcon)
{$_CMJS.EventHelper.observe(this.moveIcon,'mousedown',this.boundMoveMouseDown,false);$_CMJS.EventHelper.observe(this.moveIcon,'mouseup',this.boundMoveMouseUp,false);$_CMJS.EventHelper.observe(this.moveIcon,'mousemove',this.boundMoveMouseMove,false);}
if(this.deleteArea)
{$_CMJS.EventHelper.observe(this.deleteArea,'click',this.boundDeleteClick,false);}
if(this.upArea)
{$_CMJS.EventHelper.observe(this.upArea,'click',this.boundUpClick,false);}
if(this.downArea)
{$_CMJS.EventHelper.observe(this.downArea,'click',this.boundDownClick,false);}}
this.contentClick=function(e){};this.contentExit=function(){};this.contentMouseDown=function(e){cm.trace("object contentMouseDown");if(!e)var e=window.event;if(e.preventDefault)e.preventDefault();};this.contentMouseUp=function(e){cm.trace("object contentMouseUp");if(!e)var e=window.event;if(e.preventDefault)e.preventDefault();};this.contentMouseOver=function(e){if(cm.editMode=="on"&&this.elem.id!="new_txt"&&cm.state==states.IDLE)
{if(this.opts_timer)
clearTimeout(this.opts_timer);if($_CMJS.$(this.elem.id+'_opts'))
$_CMJS.CMElement.show(this.elem.id+'_opts');if($_CMJS.$(this.elem.id+'_border'))
$_CMJS.$(this.elem.id+'_border').className='dotted_border';}};this.contentMouseOut=function(e){if(cm.editMode=="on"&&this.elem.id!="new_txt"&&cm.state==states.IDLE)
{this.opts_timer=setTimeout($_CMJS.FuncBind([this.hideOpts,this]),200);}};this.hideOpts=function(){if(this.elem&&$_CMJS.$(this.elem.id+'_opts'))
$_CMJS.CMElement.hide(this.elem.id+'_opts');if(this.elem&&$_CMJS.$(this.elem.id+'_border'))
$_CMJS.$(this.elem.id+'_border').className='no_border';}
this.contentMouseMove=function(e){if(!e)var e=window.event;if(this.type=="SURFACE")
{cm.trace("surface moveMouseMove");$_CMJS.EventHelper.element(e).style.cursor="text";}};this.moveClick=function(e){cm.trace("object moveClick");if(!e)var e=window.event;};this.moveMouseDown=function(e){cm.trace("object moveMouseDown "+this.type);if(!e)var e=window.event;if(cm.editMode=="on"&&this.state==states.IDLE&&cm.state==states.IDLE)
{var mousePos=findMouseXY(e);if($_CMJS.EventHelper.element(e).componentFromPoint&&$_CMJS.EventHelper.element(e).componentFromPoint(e.clientX,e.clientY)!="")
{cm.trace("object moveMouseDown "+this.type+" on scrollbar");window.event.cancelBubble=true;return false;}
else if(typeof e.target!="undefined"&&typeof e.pageX!="undefined")
{sElem=e.target;if(typeof sElem.scrollHeight!="undefined"&&typeof sElem.clientHeight!="undefined"&&typeof e.pageX!="undefined"){if(sElem.clientHeight&&sElem.scrollHeight>sElem.clientHeight&&e.pageX-this.pos.x>sElem.clientWidth)
{cm.trace("object moveMouseDown "+this.type+" on scrollbar");return false;}
else if(sElem.clientWidth&&sElem.scrollWidth>sElem.clientWidth&&e.pageY-this.pos.y>sElem.clientHeight)
{cm.trace("object moveMouseDown "+this.type+" on scrollbar");return false;}}}
document.body.ondrag=function(){return false;};document.body.onselectstart=function(){return false;};this.contentArea.style.MozUserSelect='none';document.body.focus();cm.trace("object moveMouseDown "+this.type+" disable select");cm.mouseOffset={x:mousePos.x-this.pos.x+parseInt(this.elem.style.left,10)+this.border_width,y:mousePos.y-this.pos.y+parseInt(this.elem.style.top,10)+this.border_width};cm.state=states.MOVING;cm.focus=this;cm.startCoords=mousePos;this.old_z=this.container.style.zIndex;this.container.style.zIndex=9000;this.state=states.MOVING;if(e.preventDefault)e.preventDefault();cm.trace("object moveMouseDown preventDefault");opacity(this.elem.id,1.0,0.8,100);}
else if(cm.editMode=="on"&&cm.focus&&this!=cm.focus&&(!cm.focus.parent||cm.focus.parent!=this))
{cm.trace("object moveMouseDown other "+this.type);cm.focus.otherMouseDown(e);}};this.moveMouseUp=function(e){cm.trace("object moveMouseUp "+this.type);if(!e)var e=window.event;if(cm.editMode=="on"&&this.state==states.MOVING)
{opacity(this.elem.id,0.8,1.0,100);this.restore_z();var mousePos=findMouseXY(e);if((mousePos.x!=cm.startCoords.x)||(mousePos.y!=cm.startCoords.y))
{var mousePosElem={x:mousePos.x-cm.mouseOffset.x,y:mousePos.y-cm.mouseOffset.y};this.container.style.left=mousePosElem.x+"px";this.container.style.top=mousePosElem.y+"px";var old_x=this.pos.x
var old_y=this.pos.y
this.pos.x=mousePosElem.x+parseInt(this.elem.style.left,10)+this.border_width;this.pos.y=mousePosElem.y+parseInt(this.elem.style.top,10)+this.border_width;this.justmoved=true;if(this.parent)
this.parent.justmoved=true;disable_links(this.elem);if(this.type!="SURFACE")
{var surface=cm.overlapSurface(mousePos);if(surface&&surface!=this.parent)
{surface.addElement(this);}
else if(!surface&&this.parent)
{if(cm.editable)
{this.parent.removeElement(this);}
else
{this.pos.x=old_x
this.pos.y=old_y
move(this.container.id,old_x-parseInt(this.elem.style.left,10),old_y-parseInt(this.elem.style.top,10),500);}}
else
{this.save();}}
else
{this.save();}}
else
{this.justmoved=false;enable_links(this.elem);}
cm.focus=null;cm.mouseOffset={x:0,y:0};cm.startCoords={x:0,y:0};cm.state=states.IDLE;this.state=states.IDLE;e.returnValue=false;e.cancelBubble=true;cm.trace("object moveMouseUp preventDefault");}
else if(cm.editMode=="on"&&cm.focus&&this!=cm.focus&&(!cm.focus.parent||cm.focus.parent!=this))
{cm.trace("object moveMouseUp other "+this.type);cm.focus.otherMouseUp(e);}};this.moveMouseMove=function(e){if(!e)var e=window.event;if(this.type=="SURFACE")
{cm.trace("surface moveMouseMove "+this.type);$_CMJS.EventHelper.element(e).style.cursor="text";}};this.resizeClick=function(e){if(!e)var e=window.event;};this.findResizeDirection=function(mousePos){var direction="";var delta=3;if(this.parent)
{var left=this.pos.x+this.parent.pos.x;var right=this.pos.x+this.parent.pos.x+this.size.x;var top=this.pos.y+this.parent.pos.y;var bottom=this.pos.y+this.parent.pos.y+this.size.y;}
else
{var left=this.pos.x;var right=this.pos.x+this.size.x;var top=this.pos.y;var bottom=this.pos.y+this.size.y;}
if(mousePos.y>top-delta&&mousePos.y<top+delta&&mousePos.x>left-delta&&mousePos.x<right+delta)
direction+="n";if(mousePos.y>bottom-delta&&mousePos.y<bottom+delta&&mousePos.x>left-delta&&mousePos.x<right+delta)
direction+="s";if(mousePos.x>left-delta&&mousePos.x<left+delta&&mousePos.y<bottom+delta&&mousePos.y>top-delta)
direction+="w";if(mousePos.x>right-delta&&mousePos.x<right+delta&&mousePos.y<bottom+delta&&mousePos.y>top-delta)
direction+="e";return direction;};this.resizeMouseDown=function(e){cm.trace("object resizeMouseDown "+this.type);if(!e)var e=window.event;if(cm.editMode=="on"&&(this.state==states.IDLE||this.state==states.MOVING)&&(cm.state==states.IDLE||cm.state==states.MOVING))
{document.body.ondrag=function(){return false;};document.body.onselectstart=function(){return false;};cm.trace("object resizeMouseDown disable text selection");var direction=this.findResizeDirection(findMouseXY(e));if(direction&&direction.length>0)
{if(e.preventDefault)
{e.preventDefault();}
var mousePos=findMouseXY(e);if(direction.indexOf("n")>-1)
cm.mouseOffset.y=mousePos.y-this.pos.y;else if(direction.indexOf("s")>-1)
cm.mouseOffset.y=mousePos.y-this.pos.y+this.size.y;if(direction.indexOf("e")>-1)
cm.mouseOffset.x=mousePos.x-this.pos.x-this.size.x;else if(direction.indexOf("w")>-1)
cm.mouseOffset.x=mousePos.x-this.pos.x;cm.state=states.RESIZING;cm.focus=this;cm.startCoords=mousePos;cm.resizeDirection=direction;this.state=states.RESIZING;opacity(this.elem.id,1.0,0.8,100);e.returnValue=false;e.cancelBubble=true;cm.trace("object resizeMouseDown preventDefault");}}
else if(cm.editMode=="on"&&cm.focus&&this!=cm.focus&&(!cm.focus.parent||cm.focus.parent!=this))
{cm.trace("object resizeMouseDown other "+this.type);cm.focus.otherMouseDown(e);}};this.resizeMouseUp=function(e){cm.trace("object resizeMouseUp "+this.type);if(!e)var e=window.event;if(cm.editMode=="on"&&this.state==states.RESIZING)
{var mousePos=findMouseXY(e);if((mousePos.x!=cm.startCoords.x)||(mousePos.y!=cm.startCoords.y))
{cm.focus.size.x=cm.focus.elem.style.width;cm.focus.size.y=cm.focus.elem.style.height;cm.focus.pos.x=parseInt(cm.focus.container.style.left,10)+parseInt(cm.focus.elem.style.left,10)+this.border_width+"px";cm.focus.pos.y=parseInt(cm.focus.container.style.top,10)+parseInt(cm.focus.elem.style.top,10)+this.border_width+"px";this.justresized=true;opacity(this.elem.id,0.8,1.0,100);if(e.preventDefault)e.preventDefault();disable_links(this.elem)
this.save();}
else
{this.justresized=false;enable_links(this.elem)}
cm.focus=null;cm.mouseOffset={x:0,y:0};cm.startCoords={x:0,y:0};cm.state=states.IDLE;cm.resizeDirection="";this.state=states.IDLE;e.returnValue=false;e.cancelBubble=true;cm.trace("object resizeMouseUp preventDefault");}
else if(cm.editMode=="on"&&cm.focus&&this!=cm.focus&&(!cm.focus.parent||cm.focus.parent!=this))
{cm.trace("object moveMouseUp "+this.type);cm.focus.otherMouseUp(e);}};this.resizeMouseMove=function(e){if(!e)var e=window.event;if(cm.editMode=="on")
{var direction=this.findResizeDirection(findMouseXY(e));if(direction&&direction.length>0)
{$_CMJS.EventHelper.element(e).style.cursor=direction+"-resize"
$_CMJS.EventHelper.stop(e);}
else
{cm.trace("resizeMouseMove auto");if(this.type=="SURFACE")
{$_CMJS.EventHelper.element(e).style.cursor="text";}
else if(this.type=="EMBEDIMAGE"||this.type=="UPLOADFILE")
{$_CMJS.EventHelper.element(e).style.cursor="move";}
else
{$_CMJS.EventHelper.element(e).style.cursor="default";}}}
return true};this.otherClick=function(e){cm.trace("object otherClick");if(!e)var e=window.event;if(this.state==states.EDIT_TEXT)
{this.contentExit();}};this.otherMouseDown=function(e){cm.trace("object otherMouseDown");if(!e)var e=window.event;if(this.state==states.EDIT_TEXT)
{this.contentExit();}};this.otherMouseUp=function(e){cm.trace("object otherMouseUp");if(!e)var e=window.event;if(this.state==states.MOVING)
{this.moveMouseUp(e);}
else if(this.state==states.RESIZING)
{this.resizeMouseUp(e);}
else if(this.state==states.EDIT_TEXT)
{this.contentExit();}};this.deleteClick=function(e){cm.trace("object deleteClick");this.deleteMe();};this.keyPress=function(e){};this.upClick=function(e){cm.trace("object upClick");cm.orderUp(this);};this.downClick=function(e){cm.trace("object downClick");cm.orderDown(this);};this.resize=function(){};this.restore_z=function(){if(this.container.style.zIndex==9000)
this.container.style.zIndex=this.old_z;};this.contentExit=function(){cm.focus=null;cm.state=states.IDLE;this.state=states.IDLE;this.save();};this.elem=elem;this.moveArea=moveArea;this.moveIcon=moveIcon;this.resizeArea=resizeArea;this.contentArea=contentArea;this.deleteArea=deleteArea;this.container=container;this.upArea=upArea;this.downArea=downArea;this.boundResizeMouseDown=$_CMJS.FuncBindForEvent([this.resizeMouseDown,this]);this.boundResizeMouseUp=$_CMJS.FuncBindForEvent([this.resizeMouseUp,this]);this.boundResizeMouseMove=$_CMJS.FuncBindForEvent([this.resizeMouseMove,this]);this.boundContentClick=$_CMJS.FuncBindForEvent([this.contentClick,this]);this.boundContentMouseDown=$_CMJS.FuncBindForEvent([this.contentMouseDown,this]);this.boundContentMouseUp=$_CMJS.FuncBindForEvent([this.contentMouseUp,this]);this.boundContentMouseOver=$_CMJS.FuncBindForEvent([this.contentMouseOver,this]);this.boundContentMouseOut=$_CMJS.FuncBindForEvent([this.contentMouseOut,this]);this.boundMoveMouseDown=$_CMJS.FuncBindForEvent([this.moveMouseDown,this]);this.boundMoveMouseUp=$_CMJS.FuncBindForEvent([this.moveMouseUp,this]);this.boundMoveMouseMove=$_CMJS.FuncBindForEvent([this.moveMouseMove,this]);this.boundDeleteClick=$_CMJS.FuncBindForEvent([this.deleteClick,this]);this.boundUpClick=$_CMJS.FuncBindForEvent([this.upClick,this]);this.boundDownClick=$_CMJS.FuncBindForEvent([this.downClick,this]);this.startObservingAll();this.type=null;this.parent=null;this.children=[];this.selection=null;this.state=states.IDLE;this.border_width=parseInt(elem.style.borderTopWidth,10);if(isNaN(this.border_width))this.border_width=0;this.pos={x:parseInt(container.style.left,10)+parseInt(elem.style.left,10)+this.border_width,y:parseInt(container.style.top,10)+parseInt(elem.style.top,10)+this.border_width};this.size={x:parseInt(elem.style.width,10),y:parseInt(elem.style.height,10)};this.z_index=null;this.resizeDirection="";this.justmoved=false;this.justresized=false;this.resizeType="proportional"
max_wrapper(this.pos.x+this.size.x,this.pos.y+this.size.y)};cm_T=function(elem){cm_O.call(this,elem,$_CMJS.$(elem.id+"_text"),$_CMJS.$(elem.id+"_move"),$_CMJS.$(elem.id+"_border"),$_CMJS.$(elem.id+"_text"),$_CMJS.$(elem.id+"_del"),$_CMJS.$(elem.id+"_container"),$_CMJS.$(elem.id+"_up"),$_CMJS.$(elem.id+"_down"));this.destroy=function(){this.remove();this.elem=null;this.moveArea=null;this.moveIcon=null;this.resizeArea=null;this.contentArea=null;this.deleteArea=null;this.container=null;this.upArea=null;this.downArea=null;this.inputArea=null;this.fontSizeDropdown=null;this.fontFamilyDropdown=null;this.fontColourTrigger=null;this.fontColourInput=null;if(this.picker)this.picker.destroy();};this.save=$_CMJS.FuncBind([text_save,this])
this.deleteMe=$_CMJS.FuncBind([text_deleteMe,this])
this.contentClick=$_CMJS.FuncBind([text_contentClick,this])
this.boundContentClick=$_CMJS.FuncBindForEvent([this.contentClick,this]);$_CMJS.EventHelper.observe(this.contentArea,'click',this.boundContentClick,false);this.contentType=function(e){this.resize_timer=setTimeout($_CMJS.FuncBind([this.resizeTextArea,this]),100);}
this.resizeTextArea=$_CMJS.FuncBind([text_resizeTextArea,this])
this.inputArea=$_CMJS.$(elem.id+"_input");this.boundContentType=$_CMJS.FuncBindForEvent([this.contentType,this]);$_CMJS.EventHelper.observe(this.inputArea,'keypress',this.boundContentType,false);this.changeFontSize=function(e){this.contentArea.style.fontSize=this.fontSizeDropdown.value+"px";this.inputArea.style.fontSize=this.fontSizeDropdown.value+"px";if(this.state==states.EDIT_TEXT||this.state==states.NEW_TEXT)
this.inputArea.focus();else
this.contentExit();}
this.fontSizeDropdown=$_CMJS.$(elem.id+"_fontsize_dd")
this.boundChangeFontSize=$_CMJS.FuncBindForEvent([this.changeFontSize,this]);$_CMJS.EventHelper.observe(this.fontSizeDropdown,'change',this.boundChangeFontSize,false);this.changeFontFamily=function(e){this.contentArea.style.fontFamily=this.fontFamilyDropdown.value;this.inputArea.style.fontFamily=this.fontFamilyDropdown.value;if(this.state==states.EDIT_TEXT||this.state==states.NEW_TEXT)
this.inputArea.focus();else
this.contentExit();}
this.fontFamilyDropdown=$_CMJS.$(elem.id+"_fontfamily_dd")
this.boundChangeFontFamily=$_CMJS.FuncBindForEvent([this.changeFontFamily,this]);$_CMJS.EventHelper.observe(this.fontFamilyDropdown,'change',this.boundChangeFontFamily,false);this.changeFontColour=function(e){this.contentArea.style.color=this.fontColourInput.value;this.inputArea.style.color=this.fontColourInput.value;this.fontColourTrigger.style.backgroundColor=this.fontColourInput.value;this.fontColourTrigger.style.layerBackgroundColor=this.fontColourInput.value;if(this.state==states.EDIT_TEXT||this.state==states.NEW_TEXT)
{this.inputArea.focus();}
else
{this.contentExit();}}
this.picker=new ColourPicker(elem.id+'_picker',elem.id+'_trigger','colorPickerText');this.fontColourTrigger=$_CMJS.$(elem.id+'_trigger');this.fontColourInput=$_CMJS.$(elem.id+"_picker");this.fontColourInput.onchange=$_CMJS.FuncBind([this.changeFontColour,this]);this.addToSurface=function(update_div){new $_CMJS.CMAjax.Updater(update_div.id,'/surfaces/addText',{asynchronous:true,evalScripts:true,parameters:$_CMJS.CMForm.serialize($_CMJS.$("formTxtForm")),onComplete:function(){$_CMJS.CMElement.hide('saving_indicator')}});this.remove();$_CMJS.CMElement.show('saving_indicator');}
this.type="TEXTAREA"
this.resizeType="free"};text_save=function(){this.restore_z();if(this.elem.id=="new_txt"&&!$_CMJS.$(this.elem.id+'_input').value)
{return;}
cm.last_request++;update_div=$_CMJS.$('update_div_'+cm.last_request)
if(!update_div)
{var update_div=document.createElement("div");update_div.id='update_div_'+cm.last_request;this.container.parentNode.appendChild(update_div)}
update_div.appendChild(this.container.parentNode.removeChild(this.container));$_CMJS.$('message_id').value=(this.elem.id=="new_txt"?"-1":parseInt(this.elem.id,10));$_CMJS.$('message_pos_x').value=this.pos.x;$_CMJS.$('message_pos_y').value=this.pos.y;$_CMJS.$('message_size_x').value=this.size.x;$_CMJS.$('message_size_y').value=this.size.y;$_CMJS.$('message_text').value=$_CMJS.$(this.elem.id+'_input').value;$_CMJS.$('message_font_size').value=this.fontSizeDropdown.value;$_CMJS.$('message_font_family').value=this.fontFamilyDropdown.value;$_CMJS.$('message_font_colour').value=this.fontColourInput.value;$_CMJS.$('message_z_index').value=this.container.style.zIndex;$_CMJS.$('surface_id').value=(this.parent?parseInt(this.parent.elem.id,10):"")
if($_CMJS.$('message_id').value!="-1")
$_CMJS.CMElement.remove('new_txt_container');new $_CMJS.CMAjax.Updater(update_div.id,'/messages/saveMessage',{asynchronous:true,evalScripts:true,parameters:$_CMJS.CMForm.serialize($_CMJS.$("formTxtForm")),onComplete:function(){$_CMJS.CMElement.hide('saving_indicator')}});$_CMJS.CMElement.show('saving_indicator');this.remove()};text_deleteMe=function(){cm.last_request++;update_div=$_CMJS.$('update_div_'+cm.last_request)
if(!update_div)
{var update_div=document.createElement("div");update_div.id='update_div_'+cm.last_request;this.container.parentNode.appendChild(update_div)}
update_div.appendChild(this.container.parentNode.removeChild(this.container));$_CMJS.$('message_id').value=(this.elem.id=="new_txt"?"-1":parseInt(this.elem.id,10));$_CMJS.$('message_pos_x').value=this.pos.x;$_CMJS.$('message_pos_y').value=this.pos.y;$_CMJS.$('message_size_x').value=this.size.x;$_CMJS.$('message_size_y').value=this.size.y;$_CMJS.$('message_text').value=$_CMJS.$(this.elem.id+'_input').value;$_CMJS.$('message_font_size').value=this.fontSizeDropdown.value;new $_CMJS.CMAjax.Updater(update_div.id,'/messages/deleteMessage',{asynchronous:true,evalScripts:true,parameters:$_CMJS.CMForm.serialize($_CMJS.$("formTxtForm")),onComplete:function(){$_CMJS.CMElement.hide('saving_indicator')}});$_CMJS.CMElement.show('saving_indicator');this.destroy()};text_contentClick=function(e){cm.trace("text contentClick");if(this.justmoved)
{this.justmoved=false;return false;}
if(this.justresized)
{this.justresized=false;return false;}
if(cm.editMode=="on"&&this.state==states.IDLE&&cm.state==states.IDLE)
{if(!e)var e=window.event;if($_CMJS.EventHelper.element(e).tagName!="A")
{textArea=$_CMJS.$(this.elem.id+"_input");$_CMJS.$(this.elem.id+"_text").style.display="none";textArea.style.display="block";textArea.style.width=this.size.x*0.99+"px";textArea.style.height=this.size.y*0.99+"px";cm.state=states.EDIT_TEXT;cm.focus=this;this.state=states.EDIT_TEXT;document.body.ondrag=function(){};document.body.onselectstart=function(){};this.contentArea.style.MozUserSelect='';this.stopObservingAll();cm.trace("text contentClick - stopObservingAll");textArea.focus();e.returnValue=false;e.cancelBubble=true;}}
else if(cm.focus&&this!=cm.focus)
{cm.focus.otherClick(e);}
else if(cm.focus&&this==cm.focus)
{e.returnValue=false;e.cancelBubble=true;}}
text_resizeTextArea=function(){if(cm.editable)
screenSize=$_CMJS.CMElement.getDimensions('wrapper');else
screenSize=$_CMJS.CMElement.getDimensions('wrapper_noedit');if(this.elem.id=="new_txt")
{newWidth=estimateTextWidthPx(this.inputArea.value,this.fontSizeDropdown.value);if(newWidth>600)
newWidth=600;if(this.pos.x+newWidth>screenSize.width-5)
{newWidth=screenSize.width-this.pos.x-5;}
this.inputArea.style.width=newWidth+"px";this.size.x=newWidth;this.elem.style.width=newWidth+"px";}
newHeight=estimateTextHeightPx(this.inputArea.value,this.size.x,this.fontSizeDropdown.value);this.inputArea.style.height=newHeight+"px";this.size.y=newHeight;this.elem.style.height=newHeight+"px";}
cm_Embedvideo=function(elem){cm_O.call(this,elem,$_CMJS.$(elem.id+"_content"),$_CMJS.$(elem.id+"_move"),$_CMJS.$(elem.id+"_border"),$_CMJS.$(elem.id+"_content"),$_CMJS.$(elem.id+"_del"),$_CMJS.$(elem.id+"_container"),$_CMJS.$(elem.id+"_up"),$_CMJS.$(elem.id+"_down"));this.type="EMBEDVIDEO"
this.destroy=function(){this.remove();this.elem=null;this.moveArea=null;this.moveIcon=null;this.resizeArea=null;this.contentArea=null;this.deleteArea=null;this.container=null;this.upArea=null;this.downArea=null;};this.save=function(){this.restore_z();cm.last_request++;update_div=$_CMJS.$('update_div_'+cm.last_request)
if(!update_div)
{var update_div=document.createElement("div");update_div.id='update_div_'+cm.last_request;this.container.parentNode.appendChild(update_div)}
update_div.appendChild(this.container.parentNode.removeChild(this.container));$_CMJS.$('message_id').value=(this.elem.id=="new"?"-1":parseInt(this.elem.id,10));$_CMJS.$('message_pos_x').value=this.pos.x;$_CMJS.$('message_pos_y').value=this.pos.y;$_CMJS.$('message_size_x').value=this.size.x;$_CMJS.$('message_size_y').value=this.size.y;$_CMJS.$('message_z_index').value=this.container.style.zIndex;$_CMJS.$('surface_id').value=(this.parent?parseInt(this.parent.elem.id,10):"")
if($_CMJS.$('message_id').value!="-1")
$_CMJS.CMElement.remove('new_txt_container');new $_CMJS.CMAjax.Updater(update_div.id,'/messages/saveVideo',{asynchronous:true,evalScripts:true,parameters:$_CMJS.CMForm.serialize($_CMJS.$("formTxtForm")),onComplete:function(){$_CMJS.CMElement.hide('saving_indicator')}});$_CMJS.CMElement.show('saving_indicator');this.remove()}
$_CMJS.EventHelper.stopObserving(this.moveArea,'mousedown',this.boundMoveMouseDown,false);$_CMJS.EventHelper.stopObserving(this.moveArea,'mouseup',this.boundMoveMouseUp,false);$_CMJS.EventHelper.stopObserving(this.moveArea,'mousemove',this.boundMoveMouseMove,false);this.deleteMe=function(){cm.last_request++;update_div=$_CMJS.$('update_div_'+cm.last_request)
if(!update_div)
{var update_div=document.createElement("div");update_div.id='update_div_'+cm.last_request;this.container.parentNode.appendChild(update_div)}
update_div.appendChild(this.container.parentNode.removeChild(this.container));$_CMJS.$('message_id').value=(this.elem.id=="new"?"-1":parseInt(this.elem.id,10));$_CMJS.$('message_pos_x').value=this.pos.x;$_CMJS.$('message_pos_y').value=this.pos.y;$_CMJS.$('message_size_x').value=this.size.x;$_CMJS.$('message_size_y').value=this.size.y;new $_CMJS.CMAjax.Updater(update_div.id,'/messages/deleteVideo',{asynchronous:true,evalScripts:true,parameters:$_CMJS.CMForm.serialize($_CMJS.$("formTxtForm")),onComplete:function(){$_CMJS.CMElement.hide('saving_indicator')}});$_CMJS.CMElement.show('saving_indicator');this.destroy()}
this.resize=function(){$_CMJS.$(this.elem.id+"_content").style.width=this.elem.style.width;$_CMJS.$(this.elem.id+"_content").style.height=this.elem.style.height;};this.addToSurface=function(update_div){new $_CMJS.CMAjax.Updater(update_div,'/surfaces/addVideo',{asynchronous:true,evalScripts:true,parameters:$_CMJS.CMForm.serialize($_CMJS.$("formTxtForm")),onComplete:function(){$_CMJS.CMElement.hide('saving_indicator')}});this.remove();$_CMJS.CMElement.show('saving_indicator');}};cm_Embedimage=function(elem){cm_O.call(this,elem,$_CMJS.$(elem.id+"_content"),$_CMJS.$(elem.id+"_move"),$_CMJS.$(elem.id+"_border"),$_CMJS.$(elem.id+"_content"),$_CMJS.$(elem.id+"_del"),$_CMJS.$(elem.id+"_container"),$_CMJS.$(elem.id+"_up"),$_CMJS.$(elem.id+"_down"));this.type="EMBEDIMAGE"
this.destroy=function(){this.remove();this.elem=null;this.moveArea=null;this.moveIcon=null;this.resizeArea=null;this.contentArea=null;this.deleteArea=null;this.container=null;this.upArea=null;this.downArea=null;this.borderWidthDropdown=null;this.borderColourTrigger=null;this.borderColourInput=null;if(this.picker)this.picker.destroy();};this.save=function(){this.restore_z();cm.last_request++;update_div=$_CMJS.$('update_div_'+cm.last_request)
if(!update_div)
{var update_div=document.createElement("div");update_div.id='update_div_'+cm.last_request;this.container.parentNode.appendChild(update_div)}
update_div.appendChild(this.container.parentNode.removeChild(this.container));$_CMJS.$('message_id').value=(this.elem.id=="new"?"-1":parseInt(this.elem.id,10));$_CMJS.$('message_pos_x').value=this.pos.x;$_CMJS.$('message_pos_y').value=this.pos.y;$_CMJS.$('message_size_x').value=this.size.x;$_CMJS.$('message_size_y').value=this.size.y;$_CMJS.$('message_border_colour').value=this.borderColourInput.value;$_CMJS.$('message_border_width').value=this.borderWidthDropdown.value;$_CMJS.$('message_z_index').value=this.container.style.zIndex;$_CMJS.$('surface_id').value=(this.parent?parseInt(this.parent.elem.id,10):"")
if($_CMJS.$('message_id').value!="-1")
$_CMJS.CMElement.remove('new_txt_container');new $_CMJS.CMAjax.Updater(update_div.id,'/messages/saveEmbedImage',{asynchronous:true,evalScripts:true,parameters:$_CMJS.CMForm.serialize($_CMJS.$("formTxtForm")),onComplete:function(){$_CMJS.CMElement.hide('saving_indicator')}});$_CMJS.CMElement.show('saving_indicator');this.remove()}
this.deleteMe=function(){cm.last_request++;update_div=$_CMJS.$('update_div_'+cm.last_request)
if(!update_div)
{var update_div=document.createElement("div");update_div.id='update_div_'+cm.last_request;this.container.parentNode.appendChild(update_div)}
update_div.appendChild(this.container.parentNode.removeChild(this.container));$_CMJS.$('message_id').value=(this.elem.id=="new"?"-1":parseInt(this.elem.id,10));$_CMJS.$('message_pos_x').value=this.pos.x;$_CMJS.$('message_pos_y').value=this.pos.y;$_CMJS.$('message_size_x').value=this.size.x;$_CMJS.$('message_size_y').value=this.size.y;new $_CMJS.CMAjax.Updater(update_div.id,'/messages/deleteEmbedImage',{asynchronous:true,evalScripts:true,parameters:$_CMJS.CMForm.serialize($_CMJS.$("formTxtForm")),onComplete:function(){$_CMJS.CMElement.hide('saving_indicator')}});$_CMJS.CMElement.show('saving_indicator');this.destroy()}
this.resize=function(){$_CMJS.$(this.elem.id+"_image").width=parseInt(this.elem.style.width,10);$_CMJS.$(this.elem.id+"_image").height=parseInt(this.elem.style.height,10);};this.addToSurface=function(update_div){new $_CMJS.CMAjax.Updater(update_div,'/surfaces/addImage',{asynchronous:true,evalScripts:true,parameters:$_CMJS.CMForm.serialize($_CMJS.$("formTxtForm")),onComplete:function(){$_CMJS.CMElement.hide('saving_indicator')}});this.remove();$_CMJS.CMElement.show('saving_indicator');};this.changeBorderWidth=function(e){this.contentArea.style.border=this.borderWidthDropdown.value;this.save();}
this.borderWidthDropdown=$_CMJS.$(elem.id+"_brd_width_dd")
this.boundChangeBorderWidth=$_CMJS.FuncBindForEvent([this.changeBorderWidth,this]);$_CMJS.EventHelper.observe(this.borderWidthDropdown,'change',this.boundChangeBorderWidth,false);this.changeBorderColour=function(e){this.contentArea.style.border=this.borderColourInput.value;this.borderColourTrigger.style.backgroundColor=this.borderColourInput.value;this.borderColourTrigger.style.layerBackgroundColor=this.borderColourInput.value;this.save();}
this.picker=new ColourPicker(elem.id+'_brd_picker',elem.id+'_brd_trigger','colorPickerText');this.borderColourTrigger=$_CMJS.$(elem.id+'_brd_trigger');this.borderColourInput=$_CMJS.$(elem.id+"_brd_picker");this.borderColourInput.onchange=$_CMJS.FuncBind([this.changeBorderColour,this]);};cm_Uploadfile=function(elem){cm_O.call(this,elem,$_CMJS.$(elem.id+"_content"),$_CMJS.$(elem.id+"_move"),$_CMJS.$(elem.id+"_border"),$_CMJS.$(elem.id+"_content"),$_CMJS.$(elem.id+"_del"),$_CMJS.$(elem.id+"_container"),$_CMJS.$(elem.id+"_up"),$_CMJS.$(elem.id+"_down"));this.type="UPLOADFILE"
this.destroy=function(){this.remove();this.elem=null;this.moveArea=null;this.moveIcon=null;this.resizeArea=null;this.contentArea=null;this.deleteArea=null;this.container=null;this.upArea=null;this.downArea=null;this.inputArea=null;this.borderWidthDropdown=null;this.borderColourTrigger=null;this.borderColourInput=null;if(this.picker)this.picker.destroy();};this.save=function(){this.restore_z();cm.last_request++;update_div=$_CMJS.$('update_div_'+cm.last_request)
if(!update_div)
{var update_div=document.createElement("div");update_div.id='update_div_'+cm.last_request;this.container.parentNode.appendChild(update_div)}
update_div.appendChild(this.container.parentNode.removeChild(this.container));$_CMJS.$('message_id').value=(this.elem.id=="new"?"-1":parseInt(this.elem.id,10));$_CMJS.$('message_pos_x').value=this.pos.x;$_CMJS.$('message_pos_y').value=this.pos.y;$_CMJS.$('message_size_x').value=this.size.x;$_CMJS.$('message_size_y').value=this.size.y;$_CMJS.$('message_border_colour').value=this.borderColourInput.value;$_CMJS.$('message_border_width').value=this.borderWidthDropdown.value;$_CMJS.$('message_z_index').value=this.container.style.zIndex;$_CMJS.$('surface_id').value=(this.parent?parseInt(this.parent.elem.id,10):"")
if($_CMJS.$('message_id').value!="-1")
$_CMJS.CMElement.remove('new_txt_container');new $_CMJS.CMAjax.Updater(update_div.id,'/messages/saveUploadFile',{asynchronous:true,evalScripts:true,parameters:$_CMJS.CMForm.serialize($_CMJS.$("formTxtForm")),onComplete:function(){$_CMJS.CMElement.hide('saving_indicator')}});$_CMJS.CMElement.show('saving_indicator');this.remove()}
this.deleteMe=function(){if(!confirm("Are you sure you want to delete this file?  If you delete it and then change your mind, you'll have to upload it again.")){return false;}
cm.last_request++;update_div=$_CMJS.$('update_div_'+cm.last_request)
if(!update_div)
{var update_div=document.createElement("div");update_div.id='update_div_'+cm.last_request;this.container.parentNode.appendChild(update_div)}
update_div.appendChild(this.container.parentNode.removeChild(this.container));$_CMJS.$('message_id').value=(this.elem.id=="new"?"-1":parseInt(this.elem.id,10));$_CMJS.$('message_pos_x').value=this.pos.x;$_CMJS.$('message_pos_y').value=this.pos.y;$_CMJS.$('message_size_x').value=this.size.x;$_CMJS.$('message_size_y').value=this.size.y;new $_CMJS.CMAjax.Updater(update_div.id,'/messages/deleteUploadFile',{asynchronous:true,evalScripts:true,parameters:$_CMJS.CMForm.serialize($_CMJS.$("formTxtForm")),onComplete:function(){$_CMJS.CMElement.hide('saving_indicator')}});$_CMJS.CMElement.show('saving_indicator');this.destroy();}
this.resize=function(){$_CMJS.$(this.elem.id+"_image").width=parseInt(this.elem.style.width,10);$_CMJS.$(this.elem.id+"_image").height=parseInt(this.elem.style.height,10);};this.addToSurface=function(update_div){new $_CMJS.CMAjax.Updater(update_div,'/surfaces/addFile',{asynchronous:true,evalScripts:true,parameters:$_CMJS.CMForm.serialize($_CMJS.$("formTxtForm")),onComplete:function(){$_CMJS.CMElement.hide('saving_indicator')}});this.remove();$_CMJS.CMElement.show('saving_indicator');};this.changeBorderWidth=function(e){this.contentArea.style.border=this.borderWidthDropdown.value;this.save();}
this.borderWidthDropdown=$_CMJS.$(elem.id+"_brd_width_dd")
this.boundChangeBorderWidth=$_CMJS.FuncBindForEvent([this.changeBorderWidth,this]);$_CMJS.EventHelper.observe(this.borderWidthDropdown,'change',this.boundChangeBorderWidth,false);this.changeBorderColour=function(e){this.contentArea.style.border=this.borderColourInput.value;this.borderColourTrigger.style.backgroundColor=this.borderColourInput.value;this.borderColourTrigger.style.layerBackgroundColor=this.borderColourInput.value;this.save();}
this.picker=new ColourPicker(elem.id+'_brd_picker',elem.id+'_brd_trigger','colorPickerText');this.borderColourTrigger=$_CMJS.$(elem.id+'_brd_trigger');this.borderColourInput=$_CMJS.$(elem.id+"_brd_picker");this.borderColourInput.onchange=$_CMJS.FuncBind([this.changeBorderColour,this]);};cm_Widget=function(elem){cm_O.call(this,elem,$_CMJS.$(elem.id+"_move"),$_CMJS.$(elem.id+"_move_body"),$_CMJS.$(elem.id+"_border"),$_CMJS.$(elem.id+"_content"),$_CMJS.$(elem.id+"_del"),$_CMJS.$(elem.id+"_container"),$_CMJS.$(elem.id+"_up"),$_CMJS.$(elem.id+"_down"));this.type="WIDGET"
this.resizeType="free"
this.contentActive=false;this.destroy=function(){this.remove();this.elem=null;this.moveArea=null;this.moveIcon=null;this.resizeArea=null;this.contentArea=null;this.deleteArea=null;this.container=null;this.upArea=null;this.downArea=null;this.textColourTrigger=null;this.textColourInput=null;this.bgColourTrigger=null;this.bgColourInput=null;if(this.txtPicker)this.txtPicker.destroy();if(this.bgPicker)this.bgPicker.destroy();};$_CMJS.EventHelper.stopObserving(this.contentArea,'mousedown',this.boundContentMouseDown,false);$_CMJS.EventHelper.stopObserving(this.contentArea,'mouseup',this.boundContentMouseUp,false);this.contentClick=function(e){if(!this.contentActive&&$_CMJS.$(elem.id+"_read")&&$_CMJS.$(elem.id+"_write"))
{$_CMJS.CMElement.hide(elem.id+"_read");$_CMJS.CMElement.show(elem.id+"_write");this.contentActive=true;cm.state=states.EDIT_TEXT;this.state=states.EDIT_TEXT;cm.focus=this;}};$_CMJS.EventHelper.stopObserving(this.contentArea,'click',this.boundContentClick,false);this.boundContentClick=$_CMJS.FuncBindForEvent([this.contentClick,this]);$_CMJS.EventHelper.observe(this.contentArea,'click',this.boundContentClick,false);if($_CMJS.$(elem.id+"_save"))
{this.saveArea=$_CMJS.$(elem.id+"_save");this.boundContentExit=$_CMJS.FuncBindForEvent([this.contentExit,this]);$_CMJS.EventHelper.observe(this.saveArea,'click',this.boundContentExit,false);}
this.save=function(){this.restore_z();cm.last_request++;update_div=$_CMJS.$('update_div_'+cm.last_request)
if(!update_div)
{var update_div=document.createElement("div");update_div.id='update_div_'+cm.last_request;this.container.parentNode.appendChild(update_div)}
update_div.appendChild(this.container.parentNode.removeChild(this.container));$_CMJS.$('message_id').value=this.elem.id;$_CMJS.$('message_pos_x').value=this.pos.x;$_CMJS.$('message_pos_y').value=this.pos.y;$_CMJS.$('message_size_x').value=this.size.x;$_CMJS.$('message_size_y').value=this.size.y;$_CMJS.$('message_z_index').value=this.container.style.zIndex;$_CMJS.$('surface_id').value=(this.parent?parseInt(this.parent.elem.id,10):"")
if($_CMJS.$('message_id').value!="-1")
$_CMJS.CMElement.remove('new_txt_container');var params=$_CMJS.CMForm.serialize($_CMJS.$("formTxtForm"));if($_CMJS.$(elem.id+"_widget_form"))
params=params+'&'+$_CMJS.CMForm.serialize($_CMJS.$(elem.id+"_widget_form"));if(this.textColourInput)
params=params+"&"+escape("widget[text_colour]")+"="+escape(this.textColourInput.value);if(this.bgColourInput)
params=params+"&"+escape("widget[bg_colour]")+"="+escape(this.bgColourInput.value);new $_CMJS.CMAjax.Updater(update_div.id,'/messages/saveWidget',{asynchronous:true,evalScripts:true,parameters:params,onComplete:function(){$_CMJS.CMElement.hide('saving_indicator')}});$_CMJS.CMElement.show('saving_indicator');this.remove()}
this.deleteMe=function(){cm.last_request++;update_div=$_CMJS.$('update_div_'+cm.last_request)
if(!update_div)
{var update_div=document.createElement("div");update_div.id='update_div_'+cm.last_request;this.container.parentNode.appendChild(update_div)}
update_div.appendChild(this.container.parentNode.removeChild(this.container));$_CMJS.$('message_id').value=this.elem.id;$_CMJS.$('message_pos_x').value=this.pos.x;$_CMJS.$('message_pos_y').value=this.pos.y;$_CMJS.$('message_size_x').value=this.size.x;$_CMJS.$('message_size_y').value=this.size.y;new $_CMJS.CMAjax.Updater(update_div.id,'/messages/deleteWidget',{asynchronous:true,evalScripts:true,parameters:$_CMJS.CMForm.serialize($_CMJS.$("formTxtForm")),onComplete:function(){$_CMJS.CMElement.hide('saving_indicator')}});$_CMJS.CMElement.show('saving_indicator');this.destroy();};this.resize=function(){if(this.elem.id=="DISCUSSION")
{var me_y=parseInt($_CMJS.$("DISCUSSION_msg_entry").style.height,10);if(isNaN(me_y))me_y=0;$_CMJS.$("DISCUSSION_move_body").style.height=parseInt(this.container.style.height,10)-me_y-5+"px";$_CMJS.$("discussion_message").style.width=parseInt(this.container.style.width,10)-10+"px";}};this.addToSurface=function(update_div){new $_CMJS.CMAjax.Updater(update_div,'/surfaces/addWidget',{asynchronous:true,evalScripts:true,parameters:$_CMJS.CMForm.serialize($_CMJS.$("formTxtForm")),onComplete:function(){$_CMJS.CMElement.hide('saving_indicator')}});this.remove();$_CMJS.CMElement.show('saving_indicator');};if($_CMJS.$(this.elem.id+"_txt_color"))
{this.changeTxtColour=function(e){this.save();}
this.txtPicker=new ColourPicker(elem.id+'_txt_picker',elem.id+'_txt_trigger','colorPickerText');this.textColourTrigger=$_CMJS.$(elem.id+'_txt_trigger');this.textColourInput=$_CMJS.$(elem.id+"_txt_picker");this.textColourInput.onchange=$_CMJS.FuncBind([this.changeTxtColour,this]);}
if($_CMJS.$(this.elem.id+"_bg_color"))
{this.changeBgColour=function(e){this.save();}
this.bgPicker=new ColourPicker(elem.id+'_bg_picker',elem.id+'_bg_trigger','colorPickerText');this.bgColourTrigger=$_CMJS.$(elem.id+'_bg_trigger');this.bgColourInput=$_CMJS.$(elem.id+"_bg_picker");this.bgColourInput.onchange=$_CMJS.FuncBind([this.changeBgColour,this]);}};cm_Surface=function(elem){cm_O.call(this,elem,elem,$_CMJS.$(elem.id+"_move"),$_CMJS.$(elem.id+"_border"),$_CMJS.$(elem.id+"_content"),$_CMJS.$(elem.id+"_del"),$_CMJS.$(elem.id+"_container"),$_CMJS.$(elem.id+"_up"),$_CMJS.$(elem.id+"_down"));this.type="SURFACE"
this.resizeType="free"
if(!$_CMJS.$(elem.id+'_opts'))
{$_CMJS.EventHelper.stopObserving(this.moveArea,'mousedown',this.boundMoveMouseDown,false);$_CMJS.EventHelper.stopObserving(this.moveArea,'mouseup',this.boundMoveMouseUp,false);$_CMJS.EventHelper.stopObserving(this.moveArea,'mousemove',this.boundMoveMouseMove,false);$_CMJS.EventHelper.stopObserving(this.resizeArea,'mousedown',this.boundResizeMouseDown,false);$_CMJS.EventHelper.stopObserving(this.resizeArea,'mouseup',this.boundResizeMouseUp,false);$_CMJS.EventHelper.stopObserving(this.resizeArea,'mousemove',this.boundResizeMouseMove,false);$_CMJS.EventHelper.stopObserving(this.container,'mousedown',this.boundResizeMouseDown,false);$_CMJS.EventHelper.stopObserving(this.container,'mouseup',this.boundResizeMouseUp,false);$_CMJS.EventHelper.stopObserving(this.container,'mousemove',this.boundResizeMouseMove,false);}
this.destroy=function(){this.stopObservingAll();this.state=states.DELETING;if(this.parent)
{this.parent.removeChild(this);}
else
{cm.removeChild(this);}
this.elem=null;this.moveArea=null;this.moveIcon=null;this.resizeArea=null;this.contentArea=null;this.deleteArea=null;this.container=null;this.upArea=null;this.downArea=null;this.borderWidthDropdown=null;this.borderColourTrigger=null;this.borderColourInput=null;if(this.picker)this.picker.destroy();while(this.children.length>0)
{this.children[0].destroy();}};this.contentClick=function(e){cm.trace("surface contentClick");if(cm.editMode=="on"&&$_CMJS.EventHelper.element(e).id==this.contentArea.id)
{if(cm.state==states.EDIT_TEXT)
{cm.trace("surface contentClick - otherClick");cm.focus.otherClick(e);}
else
{if(this.justmoved)
{cm.trace("surface contentClick - justmoved");this.justmoved=false;return false;}
if(this.justresized)
{cm.trace("surface contentClick - justresized");this.justresized=false;return false;}
if(this.state==states.IDLE&&cm.state==states.IDLE)
{cm.trace("surface contentClick - newtext");var mousePos=findMouseXY(e);var outerdiv=$_CMJS.$('new_txt_container');outerdiv.parentNode.removeChild(outerdiv);this.contentArea.appendChild(outerdiv);outerdiv.style.position="absolute";outerdiv.style.left=mousePos.x-this.pos.x+"px";outerdiv.style.top=mousePos.y-this.pos.y+"px";if(cm.order.length>0)
{outerdiv.style.zIndex=cm.order[cm.order.length-1].z+1;}
else
{outerdiv.style.zIndex=1;}
$_CMJS.CMElement.show(outerdiv);var new_txt=new cm_T($_CMJS.$('new_txt'));this.addChild(new_txt);new_txt.parent=this;new_txt.contentClick(e);}
else if(cm.focus&&this!=cm.focus)
{cm.trace("surface contentClick - otherclick2");cm.focus.otherClick(e);}}}
else if($_CMJS.EventHelper.element(e).id==this.contentArea.id&&cm.state==states.EDIT_TEXT)
{cm.trace("surface contentClick - otherClick");cm.focus.otherClick(e);}}
this.boundContentClick=$_CMJS.FuncBindForEvent([this.contentClick,this]);$_CMJS.EventHelper.observe(this.contentArea,'click',this.boundContentClick,false);this.contentMouseDown=function(e){cm.trace("surface contentMouseDown");};$_CMJS.EventHelper.stopObserving(this.contentArea,'mousedown',this.boundContentMouseDown,false);this.boundContentMouseDown=$_CMJS.FuncBindForEvent([this.contentMouseDown,this]);$_CMJS.EventHelper.observe(this.contentArea,'mousedown',this.boundContentMouseDown,false);this.contentMouseUp=function(e){cm.trace("surface contentMouseUp");};$_CMJS.EventHelper.stopObserving(this.contentArea,'mouseup',this.boundContentMouseUp,false);this.boundContentMouseUp=$_CMJS.FuncBindForEvent([this.contentMouseUp,this]);$_CMJS.EventHelper.observe(this.contentArea,'mouseup',this.boundContentMouseUp,false);this.save=function(){this.restore_z();cm.last_request++;update_div=$_CMJS.$('update_div_'+cm.last_request)
if(!update_div)
{var update_div=document.createElement("div");update_div.id='update_div_'+cm.last_request;this.container.parentNode.appendChild(update_div)}
update_div.appendChild(this.container.parentNode.removeChild(this.container));$_CMJS.$('message_id').value=parseInt(this.elem.id,10);$_CMJS.$('message_pos_x').value=this.pos.x;$_CMJS.$('message_pos_y').value=this.pos.y;$_CMJS.$('message_size_x').value=this.size.x;$_CMJS.$('message_size_y').value=this.size.y;$_CMJS.$('message_z_index').value=this.container.style.zIndex;$_CMJS.$('message_border_colour').value=this.borderColourInput.value;$_CMJS.$('message_border_width').value=this.borderWidthDropdown.value;$_CMJS.$('surface_id').value=parseInt(this.elem.id,10);if($_CMJS.$('message_id').value!="-1")
$_CMJS.CMElement.remove('new_txt_container');new $_CMJS.CMAjax.Updater(update_div.id,'/surfaces/save',{asynchronous:true,evalScripts:true,parameters:$_CMJS.CMForm.serialize($_CMJS.$("formTxtForm")),onComplete:function(){$_CMJS.CMElement.hide('saving_indicator')}});$_CMJS.CMElement.show('saving_indicator');this.remove()}
this.deleteMe=function(){if(this.children&&this.children.length>0&&!confirm("Are you sure you want to delete this surface?  Everything inside the surface will also be deleted.")){return false;}
cm.last_request++;update_div=$_CMJS.$('update_div_'+cm.last_request)
if(!update_div)
{var update_div=document.createElement("div");update_div.id='update_div_'+cm.last_request;this.container.parentNode.appendChild(update_div)}
update_div.appendChild(this.container.parentNode.removeChild(this.container));$_CMJS.$('message_id').value=parseInt(this.elem.id,10);$_CMJS.$('message_pos_x').value=this.pos.x;$_CMJS.$('message_pos_y').value=this.pos.y;$_CMJS.$('message_size_x').value=this.size.x;$_CMJS.$('message_size_y').value=this.size.y;$_CMJS.$('surface_id').value=parseInt(this.elem.id,10);new $_CMJS.CMAjax.Updater(update_div.id,'/surfaces/deleteSurface',{asynchronous:true,evalScripts:true,parameters:$_CMJS.CMForm.serialize($_CMJS.$("formTxtForm")),onComplete:function(){$_CMJS.CMElement.hide('saving_indicator')}});$_CMJS.CMElement.show('saving_indicator');if(this==cm.highlighted_surf)
cm.highlighted_surf=null;this.destroy();}
this.resize=function(){};this.addElement=function(obj){cm.last_request++;update_div=$_CMJS.$('update_div_'+cm.last_request)
if(!update_div)
{var update_div=document.createElement("div");update_div.id='update_div_'+cm.last_request;this.container.parentNode.appendChild(update_div);}
update_div.appendChild(this.container.parentNode.removeChild(this.container));this.contentArea.appendChild(obj.container.parentNode.removeChild(obj.container));if(obj.parent)
{obj.pos.x=obj.pos.x+obj.parent.pos.x-this.pos.x;obj.pos.y=obj.pos.y+obj.parent.pos.y-this.pos.y;}
else
{obj.pos.x=obj.pos.x-this.pos.x;obj.pos.y=obj.pos.y-this.pos.y;}
obj.container.style.position='absolute';obj.container.style.top=obj.pos.y-parseInt(obj.elem.style.top,10)+"px";obj.container.style.left=obj.pos.x-parseInt(obj.elem.style.left,10)+"px";$_CMJS.$('message_id').value=obj.elem.id;$_CMJS.$('message_pos_x').value=obj.pos.x;$_CMJS.$('message_pos_y').value=obj.pos.y;$_CMJS.$('message_size_x').value=obj.size.x;$_CMJS.$('message_size_y').value=obj.size.y;$_CMJS.$('message_z_index').value=obj.container.style.zIndex;$_CMJS.$('surface_id').value=parseInt(this.elem.id,10);if($_CMJS.$('message_id').value!="-1")
$_CMJS.CMElement.remove('new_txt_container');obj.addToSurface(update_div);for(var i=0;i<this.children.length;i++)
{this.children[i].remove()}
this.remove()};this.removeElement=function(obj){this.removeChild(obj);this.container.parentNode.appendChild(obj.container.parentNode.removeChild(obj.container));obj.pos.x=obj.pos.x+this.pos.x;obj.pos.y=obj.pos.y+this.pos.y;obj.container.style.position='absolute';obj.container.style.top=obj.pos.y-parseInt(obj.elem.style.top,10)+"px";obj.container.style.left=obj.pos.x-parseInt(obj.elem.style.left,10)+"px";obj.save();};this.addChild=function(newChild){this.children[this.children.length]=newChild;newChild.parent=this;var _z=parseInt(newChild.container.style.zIndex,10);var inserted_z=false;for(var i=0;i<this.order.length;i++)
{if(_z<this.order[i].z&&(i==0||_z>=this.order[i-1].z))
{this.order.splice(i,0,{type:newChild.type,z:_z,id:newChild.elem.id});inserted_z=true;break;}}
if(!inserted_z)
{this.order.push({type:newChild.type,z:_z,id:newChild.elem.id});}};this.removeChild=function(oldChild){for(var i=0;i<this.children.length;i++)
{if(this.children[i]==oldChild)
{this.children.splice(i,1);break;}}
oldChild.parent=null;for(var i=0;i<this.order.length;i++)
{if(this.order[i].id==oldChild.elem.id&&this.order[i].type==oldChild.type)
{this.order.splice(i,1);break;}}};this.highlight=function(){$_CMJS.$(this.elem.id+'_border').className='dotted_border';};this.unhighlight=function(){$_CMJS.$(this.elem.id+'_border').className='no_border';};if($_CMJS.$(elem.id+'_opts'))
{this.changeBorderWidth=function(e){this.contentArea.style.border=this.borderWidthDropdown.value;this.save();}
this.borderWidthDropdown=$_CMJS.$(elem.id+"_brd_width_dd")
this.boundChangeBorderWidth=$_CMJS.FuncBindForEvent([this.changeBorderWidth,this]);$_CMJS.EventHelper.observe(this.borderWidthDropdown,'change',this.boundChangeBorderWidth,false);this.changeBorderColour=function(e){this.contentArea.style.border=this.borderColourInput.value;this.borderColourTrigger.style.backgroundColor=this.borderColourInput.value;this.borderColourTrigger.style.layerBackgroundColor=this.borderColourInput.value;this.save();}
this.picker=new ColourPicker(elem.id+'_brd_picker',elem.id+'_brd_trigger','colorPickerText');this.borderColourTrigger=$_CMJS.$(elem.id+'_brd_trigger');this.borderColourInput=$_CMJS.$(elem.id+"_brd_picker");this.borderColourInput.onchange=$_CMJS.FuncBind([this.changeBorderColour,this]);}
this.order=[];};$_CMJS.EventHelper.observe(window,'unload',uninitialize_cm);var globalStartTime=(new Date()).getTime();function init(){if(arguments.callee.done)return;arguments.callee.done=true;if(_timer)clearInterval(_timer);initialize_cm();};if(document.addEventListener){document.addEventListener("DOMContentLoaded",init,false);}
if(/WebKit/i.test(navigator.userAgent)){var _timer=setInterval(function(){if(/loaded|complete/.test(document.readyState)){init();}
cm.trace("Webkit waiting for init");},10);}
window.onload=init;var trace_output="";function initialize_cm(){var startTime=(new Date()).getTime()
$_CMJS.CMElement.show('loading_indicator');cm.init();cm.trace("Initializing");var surfaces=$_CMJS.getElementsByClassName('surface');for(var i=0;i<surfaces.length;i++){var new_surf=new cm_Surface(surfaces[i]);cm.addChild(new_surf);init_surf_contents(new_surf);}
var non_surf=$_CMJS.$('non_surface');textAreas=$_CMJS.getElementsByClassName('textarea','div',non_surf);for(var i=0;i<textAreas.length;i++){if(textAreas[i].id!="new_txt")
{var new_txt=new cm_T(textAreas[i])
cm.addChild(new_txt);}}
embedVideos=$_CMJS.getElementsByClassName('embedvideo','div',non_surf);for(var i=0;i<embedVideos.length;i++){cm.addChild(new cm_Embedvideo(embedVideos[i]));}
embedImages=$_CMJS.getElementsByClassName('embedimage','div',non_surf);for(var i=0;i<embedImages.length;i++){var new_img=new cm_Embedimage(embedImages[i]);cm.addChild(new_img);}
uploadFiles=$_CMJS.getElementsByClassName('uploadfile','div',non_surf);for(var i=0;i<uploadFiles.length;i++){cm.addChild(new cm_Uploadfile(uploadFiles[i]));}
widgets=$_CMJS.getElementsByClassName('widget','div',non_surf);for(var i=0;i<widgets.length;i++){cm.addChild(new cm_Widget(widgets[i]));}
if($_CMJS.$('editModeToggleOn')&&$_CMJS.CMElement.visible('editModeToggleOn'))
cm.editMode="off";else
cm.editMode="on";txtdim=$_CMJS.CMElement.getDimensions('test_textarea_size');cm.txt_row_size=txtdim.height/10;cm.txt_col_size=txtdim.width/10/1.3;$_CMJS.CMElement.hide('loading_indicator');cm.trace("Done Initializing");}
function init_surf_contents(new_surf)
{var textAreas=$_CMJS.getElementsByClassName('textarea','div',new_surf.contentArea);for(var j=0;j<textAreas.length;j++){if(textAreas[j].id!="new_txt")
new_surf.addChild(new cm_T(textAreas[j]));}
var embedVideos=$_CMJS.getElementsByClassName('embedvideo','div',new_surf.contentArea);for(var j=0;j<embedVideos.length;j++){new_surf.addChild(new cm_Embedvideo(embedVideos[j]));}
var embedImages=$_CMJS.getElementsByClassName('embedimage','div',new_surf.contentArea);for(var j=0;j<embedImages.length;j++){new_surf.addChild(new cm_Embedimage(embedImages[j]));}
var uploadFiles=$_CMJS.getElementsByClassName('uploadfile','div',new_surf.contentArea);for(var j=0;j<uploadFiles.length;j++){new_surf.addChild(new cm_Uploadfile(uploadFiles[j]));}
var widgets=$_CMJS.getElementsByClassName('widget','div',new_surf.contentArea);for(var j=0;j<widgets.length;j++){new_surf.addChild(new cm_Widget(widgets[j]));}}
function uninitialize_cm(){var startTime=(new Date()).getTime()
$_CMJS.CMElement.show('unloading_indicator');$_CMJS.EventHelper.unloadCache;var endTime=(new Date()).getTime()
while(cm.children.length>0)
cm.children[0].destroy();}
function editModeOn(){if(cm&&cm.editMode=="off")
{cm.editMode="on";$_CMJS.CMElement.hide('editModeToggleOn');$_CMJS.CMElement.show('editModeToggleOff');}}
function editModeOff(){if(cm&&cm.editMode=="on")
{cm.editMode="off";$_CMJS.CMElement.show('editModeToggleOn');$_CMJS.CMElement.hide('editModeToggleOff');}}
function findMouseXY(e)
{if(!e)var e=window.event;if(e.pageX||e.pageY){posx=e.pageX;posy=e.pageY;}
else if(e.clientX||e.clientY){posx=e.clientX+document.body.scrollLeft
+document.documentElement.scrollLeft;posy=e.clientY+document.body.scrollTop
+document.documentElement.scrollTop;}
return{x:posx,y:posy}}
function return_false()
{return false;}
saved_links=[];function disable_links(elem)
{var links=elem.getElementsByTagName('a');for(var i=0;i<links.length;i++)
{saved_links[links[i]]=links[i].onclick;links[i].onclick=return_false;}}
function enable_links(elem)
{var links=elem.getElementsByTagName('a');for(var i=0;i<links.length;i++)
{if(links[i].onclick==return_false)
links[i].onclick=saved_links[links[i]]?saved_links[links[i]]:function(){}}}
function estimateTextWidthPx(text,fontsize)
{return(estimateTextWidthCols(text)*cm.txt_col_size+40)/14*fontsize*1.2;}
function estimateTextWidthCols(text)
{lineBreaks=text.match(/[\n\r]/g)
lineBreaksIE=text.match(/\r\n/g)
lineBreaks=lineBreaks==null?0:lineBreaks.length;lineBreaksIE=lineBreaksIE==null?0:lineBreaksIE.length;if(lineBreaksIE>0)
lines=text.match(/.*\r\n/g)
else
lines=text.match(/.*[\n\r]/g)
max_length=0
total_length=0
if(lines)
{for(var i=0;i<lines.length;i++)
{if(lines[i].length>max_length)
max_length=lines[i].length
total_length+=lines[i].length}
if(text.length-total_length>max_length)
max_length=text.length-total_length}
else
{max_length=text.length}
return max_length;}
function estimateTextHeightPx(text,width,fontsize)
{var heightPx=(estimateTextHeightRows(text,width/cm.txt_col_size)*cm.txt_row_size)/14*fontsize;return heightPx;}
function estimateTextHeightRows(text,cols)
{lineBreaks=text.match(/[\n\r]/g)
lineBreaksIE=text.match(/\r\n/g)
lineBreaks=lineBreaks==null?0:lineBreaks.length;lineBreaksIE=lineBreaksIE==null?0:lineBreaksIE.length;if(lineBreaksIE>0)
lines=text.match(/.*\r\n/g)
else
lines=text.match(/.*[\n\r]/g)
num_lines=0
total_length=0
if(lines)
{for(var i=0;i<lines.length;i++)
{num_lines+=Math.ceil(lines[i].length/cols)
total_length+=lines[i].length}}
num_lines+=Math.ceil((text.length-total_length)/cols)
return num_lines+1}
function changeSurfaceBgColour(id){$_CMJS.$('surface_trigger').style.backgroundColor=$_CMJS.$('surface_picker').value;picker.showTable();new $_CMJS.CMAjax.Updater('surf_'+id+'_backgroundDiv','/surfaces/backgroundColor',{asynchronous:true,evalScripts:true,parameters:{'surface_id':id,'colour':$_CMJS.$('surface_picker').value}});}
function setSurfaceTemplate(template_id,surface_id)
{$_CMJS.$('surface_bg_template_id').value=template_id;$_CMJS.$('surface_bg_type_template').checked=true;$_CMJS.$('surf_'+surface_id+'_bgFormAjax').submit();return false;}
function setTemplate(template_id)
{$_CMJS.$('page_bg_template_id').value=template_id;$_CMJS.$('page_bg_type_template').checked=true;$_CMJS.$('pageBgFormAjax').submit();return false;}
function changeBgColour(page_id){$_CMJS.$('page_trigger').style.backgroundColor=$_CMJS.$('page_picker').value;picker.showTable();new $_CMJS.CMAjax.Updater('backgroundDiv','/pages/backgroundColor',{asynchronous:true,evalScripts:true,parameters:{'id':page_id,'colour':$_CMJS.$('page_picker').value}});}
function set_perm_radios(clicked)
{if(clicked=="read_3")
{$_CMJS.CMElement.hide('friends_read');$_CMJS.$('permission_write_level_3').enable();$_CMJS.$('permission_write_level_2').enable();$_CMJS.$('permission_write_level_1').enable();}
if(clicked=="read_2")
{$_CMJS.CMElement.show('friends_read');$_CMJS.$('permission_write_level_3').disable();$_CMJS.$('permission_write_level_2').enable();$_CMJS.$('permission_write_level_1').enable();if($_CMJS.$('permission_write_level_3').checked)
$_CMJS.$('permission_write_level_2').checked=true}
if(clicked=="read_1")
{$_CMJS.CMElement.hide('friends_read');$_CMJS.$('permission_write_level_3').disable();$_CMJS.$('permission_write_level_2').disable();$_CMJS.$('permission_write_level_1').enable();if($_CMJS.$('permission_write_level_3').checked||$_CMJS.$('permission_write_level_2').checked)
$_CMJS.$('permission_write_level_1').checked=true}}
function purge(d){var a=d.attributes,i,l,n;if(a){l=a.length;for(i=0;i<l;i+=1){n=a[i].name;if(typeof d[n]==='function'){d[n]=null;}}}
a=d.childNodes;if(a){l=a.length;for(i=0;i<l;i+=1){purge(d.childNodes[i]);}}}
function simple_purge(d){var a=d.attributes,i,l,n;if(a){l=a.length;for(i=0;i<l;i+=1){n=a[i].name;if(typeof d[n]==='function'){d[n]=null;}}}}
function max_wrapper(x,y){if($_CMJS.$('wrapper'))
{var wx=parseInt($_CMJS.$('wrapper').style.width,10);var wy=parseInt($_CMJS.$('wrapper').style.height,10);if(isNaN(wy)||wy<y)
$_CMJS.$('wrapper').style.height=y+"px";if(isNaN(wx)||wx<x)
$_CMJS.$('wrapper').style.width=x+"px";}}
function opacity(id,opacStart,opacEnd,millisec){if(opacStart==opacEnd)
return;var fps=25;var speed=millisec;var frames=Math.ceil(fps*speed/1000);var step=(opacEnd-opacStart)/frames;var timer=0;for(var i=0;i<=frames;i++){if(i==0)
var opac=opacStart;else if(i==frames)
var opac=opacEnd;else
var opac=opacStart+i*step;setTimeout("changeOpac("+opac+",'"+id+"')",(i*40));}}
function changeOpac(value,id){var element=$_CMJS.$(id);if(value==1){$_CMJS.CMElement.setStyle(element,{opacity:(/Gecko/.test(navigator.userAgent)&&!/Konqueror|Safari|KHTML/.test(navigator.userAgent))?0.999999:1.0});if(/MSIE/.test(navigator.userAgent)&&!window.opera)
$_CMJS.CMElement.setStyle(element,{filter:$_CMJS.CMElement.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'')});}else{if(value<0.00001)value=0;$_CMJS.CMElement.setStyle(element,{opacity:value});if(/MSIE/.test(navigator.userAgent)&&!window.opera)
$_CMJS.CMElement.setStyle(element,{filter:$_CMJS.CMElement.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'')+'alpha(opacity='+value*100+')'});}}
function move(id,x,y,millisec){cm.trace("move: "+id);var elem=$_CMJS.$(id);$_CMJS.CMElement.makePositioned(id);var originalLeft=parseFloat($_CMJS.CMElement.getStyle(id,'left')||'0');var originalTop=parseFloat($_CMJS.CMElement.getStyle(id,'top')||'0');var dx=x-originalLeft;var dy=y-originalTop;if(dx==0&&dy==0)
return;var fps=25;var speed=millisec;var frames=Math.ceil(fps*speed/1000);var stepx=dx/frames;var stepy=dy/frames;var timer=0;for(var i=0;i<=frames;i++){if(i==0){var newx=originalLeft;var newy=originalTop;}
else if(i==frames){var newx=x;var newy=y;}
else{var newx=originalLeft+stepx*i;var newy=originalTop+stepy*i;}
setTimeout("$_CMJS.CMElement.setStyle(\""+id+"\",{"
+"left: Math.round("+newx+") + 'px',"
+"top:  Math.round("+newy+")  + 'px'"
+"});",(i*40));}}
if($_CMJS&&$_CMJS.is_XHR)
init();