var chkEnc="äöüÄÖÜß€";function tmpStringAtt(b){var c="";if(typeof(b)=="object"){for(var a in b){c+=" "+a+"=["+b[a]+"]"}}else{c+=b}return c}function showError(c,f){try{var d=f+" ";if(c!=null){if(typeof(c)=="object"){for(var b in c){d+=" "+b+"=["+c[b]+"]"}d+=(c.message?c.message:c)}else{d+=c}}d='<div style="border:solid 2px #f63e47;font-family:Verdana,Arial,Helvetica,sans-serif;"><div style="margin:5px;"><strong>Fehler!</strong><br/>Leider ist ein Fehler aufgetreten. Wir arbeiten an der Behebung.<br/>Lade die Anwendung einfach neu oder komme später noch einmal wieder.<br/>Wir helfen Dir auch per E-Mail unter <a href="mailto:info@moviemates.de">info@moviemates.de</a> oder per MySpace <a href="http://myspace.com/siegi">Profil des Entwicklers</a>.<br/><em>Fehlerdetails:</em><div style="font-size:9px;">'+d+"</div></div></div>";var a=document.getElementById("msgcnt");if(a){a.innerHTML=d;if(a.style.display!="block"){a.style.display="block"}}else{document.write(d)}}catch(c){}}function showPlot(b,a){try{var d=b.parentNode;makeRequest("/ajax",{acmd:"plot",filmid:a},function(e){d.innerHTML=(typeof(e)=="object"?e.text:e);if(typeof(checkHeight)=="function"){checkHeight()}})}catch(c){showError(c,"Fehler beim Anzeigen der Handlung\n")}return false}function erate(g){var h=osmm_getParentType(g,1,"FORM");var d=find_elis(h);var c="";var a;for(var e=0;e<d.length;e++){if(d[e].getAttribute("name")=="filmID"){c="m"+d[e].getValue()}else{if(d[e].getAttribute("name")=="r"){a=d[e]}}}var b=egetValue(g);mrate_show(h,b)}function lrate(h){try{var j=osmm_getParentType(h,1,"FORM");var d=find_elis(j);var c="";var a;for(var g=0;g<d.length;g++){if(d[g].getAttribute("name")=="filmID"){c="m"+d[g].getValue()}else{if(d[g].getAttribute("name")=="r"){a=d[g]}}}var b=a.getAttribute("value");mrate_show(j,b)}catch(l){showError(l,"Fehler beim Rating ")}}function srate(b,a){try{var m=osmm_getParentType(b,1,"FORM");var j=find_elis(m);var g="";var n="";var q;var d;for(var h=0;h<j.length;h++){if(j[h].getAttribute("name")=="filmid"){g=j[h].getAttribute("value")}else{if(j[h].getAttribute("name")=="r"){q=j[h]}else{if(j[h].getAttribute("name")=="cmt"){d=j[h];n=j[h].value}}}}var p=a;if(a==-1){p=egetValue(b)}else{if(a==-2){p=q.getAttribute("value");for(var h=0;h<j.length;h++){if(j[h].getAttribute("value")=="Speichern"){j[h].value="Ok";j[h].style.backgroundColor="#FBFAF1";j[h].style.color="inherit";j[h].style.fontWeight="inherit"}}}}q.setAttribute("value",p);if(a==-1&&p==0&&d){d.value="";n=""}if(n==null){n=""}mrate_show(m,p);var c=m.getAttribute("action");var l="/ajax";if(c!=null&&c!=""){l=c}try{if(m.t.value!=""){if(p==11){createActivity("M\u00F6chte den Film <strong>"+m.t.value+"</strong> sehen.")}}}catch(o){}makeRequest("/ajax",{acmd:"rate",cmt:n,r:p,filmid:g},function(e){if(l!="/ajax"){lnkTo(null,"/quickrate")}})}catch(o){showError(o,"Fehler beim Rating ")}}function mrate_show(q,o){try{var b=find_els(q,"SPAN");var m=0;if(b&&b.length>0){b=b[0];var l=0;var g=(o<11?o:0);var s=b.childNodes;for(i=0;i<s.length;i++){if(s[i].nodeType==1&&s[i].nodeName=="IMG"){var h=s[i];var a=fixsrc(h);m=a.lastIndexOf("/");h.src=a.substr(0,m+1)+(l<g?"avg1":"avg0")+(l%2==0?"_li":"_re")+".gif";l++}}}var b=find_els(q,"IMG");for(i=0;i<b.length;i++){var h=b[i];var a=fixsrc(h);m=a.lastIndexOf("/");var d=a.substr(m+1);if(d=="rate01.gif"||d=="rate00.gif"){h.src=a.substr(0,m+1)+(o==11?"rate01.gif":"rate00.gif")}else{if(d=="rate11.gif"||d=="rate10.gif"){h.src=a.substr(0,m+1)+(o==12?"rate11.gif":"rate10.gif")}}}if(o==0){}else{if(o<11){}else{if(o<12){}else{}}}}catch(r){showError(r,"Fehler.:")}}function rateCmt(c){try{var d=osmm_getParentType(c,1,"FORM");var a=find_elis(d);for(var b=0;b<a.length;b++){if(a[b].getAttribute("value")=="Ok"){a[b].value="Speichern";a[b].style.backgroundColor="#d81010";a[b].style.color="#ffffff";a[b].style.fontWeight="bold"}}}catch(g){showError(g,"Fehler beim Speichern\n")}}function egetValue(e){var b=0;if(e){var g=fixsrc(e);var d=g.lastIndexOf("/");var l=g.substring(d+1);if(l=="rate00.gif"||l=="rate01.gif"){b=11}else{if(l=="rate10.gif"||l=="rate11.gif"){b=12}else{var f=osmm_getParentType(e,1,"SPAN");var h=f.childNodes;var a=0;for(i=0;i<h.length;i++){if(h[i].nodeType==1&&h[i].nodeName=="IMG"){a++;if(h[i]==e){b=a;break}}}}}}return b}function osmm_getParentType(e,c,f){var d=0;var b=0;var a=null;for(d=0;d<10;d++){if(e.nodeType==1&&e.nodeName==f){b++;if(b==c){a=e;break}}e=e.parentNode}return a}function getNextSibling(c,d){var b=0;var a=null;for(b=0;b<10&&c;b++){c=c.nextSibling;if(c&&c.nodeType==1&&((d!=null&&c.nodeName==d)||(d==null))){a=c;break}}return a}function osmm_getPreviousSibling(c,d){var b=0;var a=null;if(!d){d=c.nodeName}for(b=0;b<10&&c;b++){c=c.previousSibling;if(c&&c.nodeType==1&&c.nodeName==d){a=c;break}}return a}function find_els(c,b){var a=find_el(c,b);return a}function find_el(h,d){var b=[];try{if(h){var g=h.childNodes;if(g){for(var a=0;a<g.length;a++){if(g[a].nodeName==d){b.push(g[a])}b=b.concat(find_el(g[a],d))}}}}catch(f){showError(f,"find_el ")}return b}function find_elis(b){var a=find_eli(b);return a}function find_eli(g){var b=[];try{if(g){var f=g.childNodes;if(f){for(var a=0;a<f.length;a++){if((f[a].nodeName=="INPUT")||(f[a].nodeName=="TEXTAREA"&&f[a].attributes.name&&f[a].attributes.name.nodeValue=="cmt")){b.push(f[a])}b=b.concat(find_eli(f[a]))}}}}catch(d){showError(d,"find_eli ")}return b}function showReview(c,a,b){try{var f=c.parentNode;makeRequest("/ajax",{acmd:"getrev",filmid:a,writerid:b},function(e){f.innerHTML=(typeof(e)=="object"?e.text:e);if(typeof(checkHeight)=="function"){checkHeight()}})}catch(d){showError(d,"Fehler beim Anzeigen der Rezension\n")}return false}function showBlk(f,d,c){try{var b=document.getElementById(d);if(b){b.style.display=(c==0?"none":"block")}}catch(a){showError(a,"Fehler:")}}function favorite(c,a,b,g){try{var f=c.parentNode;c.innerHTML="... bitte warten";c.blur();makeRequest("/ajax",{acmd:"favorite",t:a,id:b},function(e){c.innerHTML=(typeof(e)=="object"?e.text:e);if(g&&g!=""&&a=="1"&&c.innerHTML=="Favorit entfernen"){createActivity("Ist Fan von Schauspieler/in <strong>"+g+"</strong>")}else{if(g&&g!=""&&a=="2"&&c.innerHTML=="Favorit entfernen"){createActivity("Hat einen neuen Lieblingsfilm <strong>"+g+"</strong>")}}})}catch(d){showError(d,"Fehler beim Setzen des Favoriten\n")}return false}function digg(c,b,a){try{var f=c.parentNode;c.innerHTML="... bitte warten";c.blur();makeRequest("/ajax",{acmd:"digg",r1:b,r2:a},function(e){c.innerHTML=(typeof(e)=="object"?e.text:e)},true)}catch(d){showError(d,"Fehler beim Setzen von Hilfreich\n")}return false}function submitFMT(g){try{var j=osmm_getParentType(g,1,"FORM");if(!j||!j.elements){return false}var c=find_elis(j.parentNode);var b="";var h="";for(var d=0;d<c.length;d++){if(c[d].getAttribute("name")=="cmt"){var a=c[d].value;if(h!=""){b+="&"+encodeURIComponent(h)+"="+encodeURIComponent(c[d].value);h=""}}else{if(c[d].getAttribute("name")=="filmid"){h=c[d].value}}}j.elements.cmt.value=b;makeRequest("/fmt",{cmt:b,p:j.elements.p.value,edit:1},null)}catch(k){showError(k,"Fehler beim Film-Match-Test\n")}return false}function zc(c){try{var g=c.nextSibling;var b=c.parentNode.parentNode.childNodes;var a=0;for(a=0;a<b.length;a++){var j=b[a].childNodes[0];if(j.style.whiteSpace=="normal"){j.style.whiteSpace="nowrap";j.style.fontWeight="normal";j.nextSibling.style.display="none"}}if(g.style.display=="none"){c.style.whiteSpace="normal";c.style.fontWeight="bold";g.style.display="block"}}catch(f){}}function search(a){try{var c=a.elements.q.value;if(c==""||c=="Filme, Stars"){}else{if(typeof(showWaitLoading)=="function"){showWaitLoading()}makeRequest("/",{q:c},null)}}catch(b){showError(b,"")}return false}function searchSel(b,a){try{if(a=="1"){if(b.value=="Filme, Stars"){b.value=""}b.style.color="#444444"}else{if(b.value==""){b.value="Filme, Stars";b.style.color="#ababab"}}}catch(c){}}function getselrb(c){try{var a=0;for(a=0;a<c.length;a++){if(c[a].checked){return c[a].value}}}catch(b){}return null}function fixsrc(d){try{var b=d.src.indexOf("?");if(b!=-1){var b=d.src.indexOf("url=");var a=d.src.indexOf("&");return decodeURIComponent(d.src.substring(b+4,(a==-1?d.src.length:a)))}else{}}catch(c){showError("Problem fixsrc",c)}return d?d.src:d}function changeRating(a){try{var c=a.parentNode.nextSibling;c.style.display="block";a.blur();a.style.display="none";if(typeof(checkHeight)=="function"){checkHeight()}}catch(b){showError("ChangeRating",b)}}function closeRating(node){try{srate(node,-2);var f=node.parentNode.parentNode;f.style.display="none";var pl=f.previousSibling;makeRequest("/ajax",{acmd:"getrating",filmid:f.filmid.value},function(data){var rmsg=eval((typeof(data)=="object"?data.text:data));var rating=parseInt(rmsg[0].rating);var nhtml='<a href="javascript:void%200" onclick="changeRating(this)">';if(rmsg[0].rating==""){nhtml=nhtml+'<img src="'+mmsvr+'/img/btn_bewerten.jpg" alt="aendern">'}else{if(rating==11){nhtml=nhtml+'<img src="'+mmsvr+'/img/rate01.gif" alt="">';nhtml=nhtml+'<img style="margin-left:4px;" src="'+mmsvr+'/img/btn_chg_rate.gif" alt="aendern">'}else{if(rating==12){nhtml=nhtml+'<img src="'+mmsvr+'/img/rate11.gif" alt="">';nhtml=nhtml+'<img style="margin-left:4px;" src="'+mmsvr+'/img/btn_chg_rate.gif" alt="aendern">'}else{nhtml=nhtml+'<span><img alt="" src="'+mmsvr+"/img/stars"+rating+'.png"></span>';nhtml=nhtml+'<img style="margin-left:4px;" src="'+mmsvr+'/img/btn_chg_rate.gif" alt="aendern">'}}}if(rmsg[0].cmt.length>0){nhtml=nhtml+'<img style="margin-left:6px;" src="'+mmsvr+'/img/posts.gif" alt="">'}nhtml=nhtml+"</a>";pl.innerHTML=nhtml;pl.style.display="block"})}catch(e){showError(e,"")}}function show(c){try{if(c){c.blur()}var b=getNextSibling(c,"P");if(b){b.style.display="block"}}catch(a){}}function hide(c){try{if(c){c.blur()}var b=c.parentNode;if(b){b.style.display="none"}}catch(a){}}function listSubmit(){try{var a=document.forms.mdflist;var d=document.forms.mdflist2;if(a){d.name.value=a.name.value;d.desc.value=a.desc.value;if(a.name.value.length<1){a.name.focus();return false}}var b="";for(i=0;i<d.elements.length;i++){if(d.elements[i].name.substr(0,1)=="f"&&d.elements[i].value=="true"){b+=d.elements[i].name.substring(1)+"|"}}makeRequest("/list/"+d.id.value,{acmd:"store",name:d.name.value,desc:d.desc.value,fav:d.fav.value,lst:b},null)}catch(c){showError(c,"Fehler beim Speichern")}return false}var dragsort=null;var junkdrawer=null;function listInit(){try{dragsort=ToolMan.dragsort();junkdrawer=ToolMan.junkdrawer();junkdrawer.restoreListOrder("movielist");dragsort.makeListSortable(document.getElementById("movielist"),listSaveOrder)}catch(a){showError(a,"Fehler bei Listeninitialisierung")}}function listSaveOrder(a){try{var d=a.toolManDragGroup;var b=d.element.parentNode;var f=b.getAttribute("id");if(f==null){return}d.register("dragend",function(){})}catch(c){showError(c,"Save Order")}}function listAddMovie(d,l,k,a){try{var g=document.forms.mdflist;var f=document.forms.mdflist2;var h="f"+l;if(f.elements[h]){return}if(f.elements.length>100){return}var b=document.getElementById("movielist");var c=document.createElement("LI");c.innerHTML='<input type="hidden" name="'+h+'" value="true"><img src="'+k+'" alt=""><p class="mclp">'+a+'</p><p><a href="javascript:void%200" onclick="listRemove(this)" style="font-weight:bold; color:red;">X</a></p>';b.insertBefore(c,b.childNodes[0]);dragsort.makeListSortable(document.getElementById("movielist"),listSaveOrder);var b=osmm_getParentType(d,1,"P");if(b){b.parentNode.removeChild(b)}if(typeof(checkHeight)=="function"){checkHeight()}}catch(j){showError(j,"Fehler beim Speichern")}}function listRemove(a){try{var c=a.parentNode.parentNode;if(c){c.parentNode.removeChild(c)}}catch(b){showError(b,"listRemove")}}function listSearch(c){try{var d=document.forms.searchfilm;var a=document.getElementById("listsubmit");if(a){a.disabled=true}var b=document.getElementById("searchlist");b.innerHTML='<img src="http://app.moviemates.de/opensocial/img/pleasewait.gif" alt="Warten">';makeRequest("/ajax",{acmd:"moviesearch",q:d.fsearch.value},function(e){b.innerHTML=(typeof(e)=="object"?e.text:e);if(a){a.disabled=false}if(typeof(checkHeight)=="function"){checkHeight()}})}catch(g){if(a){a.disabled=false}showError(g,"Fehler beim Suchen:")}return false}function selectAll(b,g){try{var c=osmm_getParentType(b,1,"FORM");if(c){for(var a=0;a<c.elements.length;a++){if(c.elements[a].type=="checkbox"){c.elements[a].checked=g}}}}catch(d){}}function invSubmit(d,j){try{var g=osmm_getParentType(d,1,"FORM");if(!g||!g.elements){return false}var b=find_elis(g.parentNode);var a=new Array();for(var c=0;c<g.elements.length;c++){if(g.elements[c].type=="checkbox"&&g.elements[c].checked==true){a.push(g.elements[c].value)}}if(a.length>0){mmAbort=0;mmInd=0;mmRecip=a;mmMsg='[recipient], [sender] hat den Film-Test bei moviemates gemacht. Klick auf "Dieses Widget benutzen", um zu sehen, wie ähnlich Euer Filmgeschmack ist.';shareApp(mmRecip[mmInd],mmMsg,arrInviteResult)}else{}}catch(h){showError(h,"Fehler beim Einladen")}return false}function miniDialog(){try{var a=document.getElementsByTagName("body")[0];var c=document.createElement("div");var d="Bist Du sicher, dass Du abbrechen m\u00F6chtest?<br/>M\u00F6chtest Du den Rest der Einladungen \u00FCberspringen?<br/><br/>Mit der Einladung kannst Du sehen, welche Filme Deinen Freunden gefallen.";c.innerHTML='<div style="border:solid 2px #808080;font-size:16px;width:550px;height:150px;margin:100px auto 0;"><div style="margin:5px;"><div style="text-align:right;"><a href="javascript:void%200" onclick="rmvDlg(this.parentNode.parentNode.parentNode)" style="font-size:16px;font-weight:bold;">X</a></div><p>'+d+'</p><form action="#" onsubmit="return false"><p style="text-align:center;"><input type="button" onclick="arrInviteDlgRes(this.parentNode.parentNode.parentNode.parentNode,0)" value="Abbrechen" style="margin-right:10px;"/><input type="button" onclick="arrInviteDlgRes(this.parentNode.parentNode.parentNode.parentNode,1)" value="Weitere Freunde einladen"/></p></form></div></div>';a.appendChild(c)}catch(f){showErrorAtt("miniDialog",f)}}function rmvDlg(a){try{a.parentNode.removeChild(a)}catch(b){}}var mmAbort;var mmRecip;var mmInd;var mmMsg;function arrInviteResult(a){try{if(!mmRecip){return}mmInd++;if(mmInd>=mmRecip.length){return}if(!a||a.hadError()){return}var b=a.getData();if(!b){b=MyOpenSpcae.PostTo.Result.ERROR}if(!a||a.hadError()||b==MyOpenSpace.PostTo.Result.ERROR){ptrack("/error/inv");return}if(b==MyOpenSpace.PostTo.Result.CANCELLED){mmAbort++;if(mmAbort>1){miniDialog()}else{shareApp(mmRecip[mmInd],mmMsg,arrInviteResult)}}else{shareApp(mmRecip[mmInd],mmMsg,arrInviteResult)}}catch(c){showErrorAtt("arrInvite",c)}}function arrInviteDlgRes(b,a){try{rmvDlg(b);if(a==1){shareApp(mmRecip[mmInd],mmMsg,arrInviteResult)}}catch(c){showErrorAtt("arrInvite",c)}}function invSubmitB(c,f){try{if(typeof(os.postTo)=="function"){var b=MyOpenSpace.MySpaceContainer.OSToken;var a=opensocial.newMessage("Haben wir den gleichen Filmgeschmack? Mach den Film-Match-Test und finde es heraus. Außerdem Infos zu allen Kinofilmen.");a.setField(opensocial.Message.Field.TITLE,"Mach den Film-Match-Test");a.setField(opensocial.Message.Field.TYPE,MyOpenSpace.PostTo.Targets.BULLETINS);os.postTo(b,a,null,function(e){invSubmit(c,f)})}else{invSubmit(c,f)}}catch(d){showErrorAtt("invSubmitB",d)}}function showtimes(b){try{if(b.getAttribute("action")!="#"){return true}var c=b;var a=(c.day?c.day.value:"");makeRequest("/showtimes",{id:c.filmid.value,zip:c.zip.value,day:a},null)}catch(d){showErrorAtt("showtimes",d)}return false}function mdfshowtimes(a){try{var c=a.form;var b=(c.zip.value!="");if(b){var g=a.getAttribute("name");if(g=="day"||g=="filmid"){if(c.getAttribute("action")=="#"){showtimes(c)}else{c.submit()}}}}catch(d){showErrorAtt("mdfshowtimes",d)}}function qrelfilm(b,a){try{var c=document.getElementById("qrelfilmt").value;var f=document.getElementById("srelfilm");makeRequest("/ajax",{acmd:"msearch",q:c,id:a},function(e){f.innerHTML=(typeof(e)=="object"?e.text:e);if(typeof(checkHeight)=="function"){checkHeight()}})}catch(d){showError(d,"Fehler bei ähnliche Filme\n")}return false}function reladd(c,b,a){try{var f=c.parentNode;makeRequest("/ajax",{acmd:"relfilmadd",id1:b,id2:a},function(e){f.innerHTML=(typeof(e)=="object"?e.text:e);if(typeof(checkHeight)=="function"){checkHeight()}})}catch(d){showError(d,"Fehler bei ähnliche Filme\n")}return false}function frvote(a,d){try{var c=a.parentNode;makeRequest("/ajax",{acmd:"frvote",id:d},function(e){c.innerHTML=(typeof(e)=="object"?e.text:e)})}catch(b){showError(b,"Fehler beim Voten\n")}return false}function ospub(c,a,n){try{var o=osmm_getParentType(c,1,"FORM");var l=find_elis(o);var h="";var p="";var r;var g;for(var j=0;j<l.length;j++){if(l[j].getAttribute("name")=="filmid"){h=l[j].getAttribute("value")}else{if(l[j].getAttribute("name")=="r"){r=l[j]}else{if(l[j].getAttribute("name")=="cmt"){g=l[j];p=l[j].value}}}}if(p==null){p=""}if(p.length>1){var d={};d[opensocial.Activity.Field.TITLE_ID]="review_1";d[opensocial.Activity.Field.TEMPLATE_PARAMS]={movie:a,cmt:p};var m=[];m.push(opensocial.newMediaItem("image/jpeg",n));d[opensocial.Activity.Field.MEDIA_ITEMS]=m;var b=opensocial.newActivity(d);opensocial.requestCreateActivity(b,opensocial.CreateActivityPriority.HIGH,function(e){})}}catch(q){showError(q,"Fehler beim Publishing ")}}var ToolMan={events:function(){if(!ToolMan._eventsFactory){throw"ToolMan Events module isn't loaded"}return ToolMan._eventsFactory},css:function(){if(!ToolMan._cssFactory){throw"ToolMan CSS module isn't loaded"}return ToolMan._cssFactory},coordinates:function(){if(!ToolMan._coordinatesFactory){throw"ToolMan Coordinates module isn't loaded"}return ToolMan._coordinatesFactory},drag:function(){if(!ToolMan._dragFactory){throw"ToolMan Drag module isn't loaded"}return ToolMan._dragFactory},dragsort:function(){if(!ToolMan._dragsortFactory){throw"ToolMan DragSort module isn't loaded"}return ToolMan._dragsortFactory},helpers:function(){return ToolMan._helpers},junkdrawer:function(){return ToolMan._junkdrawer}};ToolMan._helpers={map:function(d,b){for(var a=0,c=d.length;a<c;a++){b(d[a])}},nextItem:function(b,c){if(b==null){return}var a=b.nextSibling;while(a!=null){if(a.nodeName==c){return a}a=a.nextSibling}return null},previousItem:function(b,c){var a=b.previousSibling;while(a!=null){if(a.nodeName==c){return a}a=a.previousSibling}return null},moveBefore:function(b,a){var c=b.parentNode;c.removeChild(b);c.insertBefore(b,a)},moveAfter:function(b,a){var c=b.parentNode;c.removeChild(b);c.insertBefore(b,a?a.nextSibling:null)}};ToolMan._junkdrawer={serializeList:function(d){var a=d.getElementsByTagName("li");var f=new Array();for(var b=0,e=a.length;b<e;b++){var c=a[b];f.push(ToolMan.junkdrawer()._identifier(c))}return f.join("|")},inspectListOrder:function(a){alert(ToolMan.junkdrawer().serializeList(document.getElementById(a)))},restoreListOrder:function(a){var b=document.getElementById(a);if(b==null){return}},_identifier:function(c){var a=ToolMan.junkdrawer().trim;var b;b=a(c.getAttribute("id"));if(b!=null&&b.length>0){return b}b=a(c.getAttribute("itemID"));if(b!=null&&b.length>0){return b}return a(c.innerHTML)},_itemsByID:function(d){var f=new Array();var a=d.getElementsByTagName("li");for(var b=0,e=a.length;b<e;b++){var c=a[b];f[ToolMan.junkdrawer()._identifier(c)]=c}return f},trim:function(a){if(a==null){return null}return a.replace(/^(\s+)?(.*\S)(\s+)?$/,"$2")}};ToolMan._eventsFactory={fix:function(a){if(!a){a=window.event}if(a.target){if(a.target.nodeType==3){a.target=a.target.parentNode}}else{if(a.srcElement){a.target=a.srcElement}}return a},register:function(b,c,d){if(b.addEventListener){b.addEventListener(c,d,false)}else{if(b.attachEvent){if(!b._listeners){b._listeners=new Array()}if(!b._listeners[c]){b._listeners[c]=new Array()}var a=function(){d.apply(b,new Array())};b._listeners[c][d]=a;b.attachEvent("on"+c,a)}}},unregister:function(a,b,c){if(a.removeEventListener){a.removeEventListener(b,c,false)}else{if(a.detachEvent){if(a._listeners&&a._listeners[b]&&a._listeners[b][c]){a.detachEvent("on"+b,a._listeners[b][c])}}}}};ToolMan._cssFactory={readStyle:function(a,c){if(a.style[c]){return a.style[c]}else{if(a.currentStyle){return a.currentStyle[c]}else{if(document.defaultView&&document.defaultView.getComputedStyle){var b=document.defaultView.getComputedStyle(a,null);return b.getPropertyValue(c)}else{return null}}}}};ToolMan._coordinatesFactory={create:function(a,b){return new _ToolManCoordinate(this,a,b)},origin:function(){return this.create(0,0)},topLeftPosition:function(a){var c=parseInt(ToolMan.css().readStyle(a,"left"));var c=isNaN(c)?0:c;var b=parseInt(ToolMan.css().readStyle(a,"top"));var b=isNaN(b)?0:b;return this.create(c,b)},bottomRightPosition:function(a){return this.topLeftPosition(a).plus(this._size(a))},topLeftOffset:function(a){var c=this._offset(a);var b=a.offsetParent;while(b){c=c.plus(this._offset(b));b=b.offsetParent}return c},bottomRightOffset:function(a){return this.topLeftOffset(a).plus(this.create(a.offsetWidth,a.offsetHeight))},scrollOffset:function(){if(window.pageXOffset){return this.create(window.pageXOffset,window.pageYOffset)}else{if(document.documentElement){return this.create(document.body.scrollLeft+document.documentElement.scrollLeft,document.body.scrollTop+document.documentElement.scrollTop)}else{if(document.body.scrollLeft>=0){return this.create(document.body.scrollLeft,document.body.scrollTop)}else{return this.create(0,0)}}}},clientSize:function(){if(window.innerHeight>=0){return this.create(window.innerWidth,window.innerHeight)}else{if(document.documentElement){return this.create(document.documentElement.clientWidth,document.documentElement.clientHeight)}else{if(document.body.clientHeight>=0){return this.create(document.body.clientWidth,document.body.clientHeight)}else{return this.create(0,0)}}}},mousePosition:function(a){a=ToolMan.events().fix(a);return this.create(a.clientX,a.clientY)},mouseOffset:function(a){a=ToolMan.events().fix(a);if(a.pageX>=0||a.pageX<0){return this.create(a.pageX,a.pageY)}else{if(a.clientX>=0||a.clientX<0){return this.mousePosition(a).plus(this.scrollOffset())}}},_size:function(a){return this.create(a.offsetWidth,a.offsetHeight)},_offset:function(a){return this.create(a.offsetLeft,a.offsetTop)}};function _ToolManCoordinate(b,a,c){this.factory=b;this.x=isNaN(a)?0:a;this.y=isNaN(c)?0:c}_ToolManCoordinate.prototype={toString:function(){return"("+this.x+","+this.y+")"},plus:function(a){return this.factory.create(this.x+a.x,this.y+a.y)},minus:function(a){return this.factory.create(this.x-a.x,this.y-a.y)},min:function(a){return this.factory.create(Math.min(this.x,a.x),Math.min(this.y,a.y))},max:function(a){return this.factory.create(Math.max(this.x,a.x),Math.max(this.y,a.y))},constrainTo:function(d,b){var c=d.min(b);var a=d.max(b);return this.max(c).min(a)},distance:function(a){return Math.sqrt(Math.pow(this.x-a.x,2)+Math.pow(this.y-a.y,2))},reposition:function(a){a.style.top=this.y+"px";a.style.left=this.x+"px"}};ToolMan._dragFactory={createSimpleGroup:function(a,b){b=b?b:a;var c=this.createGroup(a);c.setHandle(b);c.transparentDrag();c.onTopWhileDragging();return c},createGroup:function(b){var c=new _ToolManDragGroup(this,b);var a=ToolMan.css().readStyle(b,"position");if(a=="static"){b.style.position="relative"}else{if(a=="absolute"){ToolMan.coordinates().topLeftOffset(b).reposition(b)}}c.register("draginit",this._showDragEventStatus);c.register("dragmove",this._showDragEventStatus);c.register("dragend",this._showDragEventStatus);return c},_showDragEventStatus:function(a){window.status=a.toString()},constraints:function(){return this._constraintFactory},_createEvent:function(a,b,c){return new _ToolManDragEvent(a,b,c)}};function _ToolManDragGroup(a,b){this.factory=a;this.element=b;this._handle=null;this._thresholdDistance=0;this._transforms=new Array();this._listeners=new Array();this._listeners.draginit=new Array();this._listeners.dragstart=new Array();this._listeners.dragmove=new Array();this._listeners.dragend=new Array()}_ToolManDragGroup.prototype={setHandle:function(b){var a=ToolMan.events();b.toolManDragGroup=this;a.register(b,"mousedown",this._dragInit);b.onmousedown=function(){return false};if(this.element!=b){a.unregister(this.element,"mousedown",this._dragInit)}},register:function(a,b){this._listeners[a].push(b)},addTransform:function(a){this._transforms.push(a)},verticalOnly:function(){this.addTransform(this.factory.constraints().vertical())},horizontalOnly:function(){this.addTransform(this.factory.constraints().horizontal())},setThreshold:function(a){this._thresholdDistance=a},transparentDrag:function(a){var a=typeof(a)!="undefined"?a:0.75;var b=ToolMan.css().readStyle(this.element,"opacity");this.register("dragstart",function(d){var c=d.group.element;c.style.opacity=a;c.style.filter="alpha(opacity="+(a*100)+")"});this.register("dragend",function(d){var c=d.group.element;c.style.opacity=b;c.style.filter="alpha(opacity=100)"})},onTopWhileDragging:function(b){var b=typeof(b)!="undefined"?b:100000;var a=ToolMan.css().readStyle(this.element,"z-index");this.register("dragstart",function(c){c.group.element.style.zIndex=b});this.register("dragend",function(c){c.group.element.style.zIndex=a})},_dragInit:function(a){a=ToolMan.events().fix(a);var c=document.toolManDragGroup=this.toolManDragGroup;var b=c.factory._createEvent("draginit",a,c);c._isThresholdExceeded=false;c._initialMouseOffset=b.mouseOffset;c._grabOffset=b.mouseOffset.minus(b.topLeftOffset);ToolMan.events().register(document,"mousemove",c._drag);document.onmousemove=function(){return false};ToolMan.events().register(document,"mouseup",c._dragEnd);c._notifyListeners(b)},_drag:function(b){b=ToolMan.events().fix(b);var j=ToolMan.coordinates();var k=this.toolManDragGroup;if(!k){return}var h=k.factory._createEvent("dragmove",b,k);var g=h.mouseOffset.minus(k._grabOffset);if(!k._isThresholdExceeded){var a=h.mouseOffset.distance(k._initialMouseOffset);if(a<k._thresholdDistance){return}k._isThresholdExceeded=true;k._notifyListeners(k.factory._createEvent("dragstart",b,k))}for(i in k._transforms){var d=k._transforms[i];g=d(g,h)}var f=g.minus(h.topLeftOffset);var e=h.topLeftPosition.plus(f);e.reposition(k.element);h.transformedMouseOffset=g.plus(k._grabOffset);k._notifyListeners(h);var c=g.minus(j.topLeftOffset(k.element));if(c.x!=0||c.y!=0){j.topLeftPosition(k.element).plus(c).reposition(k.element)}},_dragEnd:function(a){a=ToolMan.events().fix(a);var c=this.toolManDragGroup;var b=c.factory._createEvent("dragend",a,c);c._notifyListeners(b);this.toolManDragGroup=null;ToolMan.events().unregister(document,"mousemove",c._drag);document.onmousemove=null;ToolMan.events().unregister(document,"mouseup",c._dragEnd)},_notifyListeners:function(b){var a=this._listeners[b.type];for(i in a){a[i](b)}}};function _ToolManDragEvent(a,b,c){this.type=a;this.group=c;this.mousePosition=ToolMan.coordinates().mousePosition(b);this.mouseOffset=ToolMan.coordinates().mouseOffset(b);this.transformedMouseOffset=this.mouseOffset;this.topLeftPosition=ToolMan.coordinates().topLeftPosition(c.element);this.topLeftOffset=ToolMan.coordinates().topLeftOffset(c.element)}_ToolManDragEvent.prototype={toString:function(){return"mouse: "+this.mousePosition+this.mouseOffset+"    xmouse: "+this.transformedMouseOffset+"    left,top: "+this.topLeftPosition+this.topLeftOffset}};ToolMan._dragFactory._constraintFactory={vertical:function(){return function(c,b){var a=b.topLeftOffset.x;return c.x!=a?c.factory.create(a,c.y):c}},horizontal:function(){return function(c,a){var b=a.topLeftOffset.y;return c.y!=b?c.factory.create(c.x,b):c}}};ToolMan._dragsortFactory={makeSortable:function(a){var b=ToolMan.drag().createSimpleGroup(a);b.register("dragstart",this._onDragStart);b.register("dragmove",this._onDragMove);b.register("dragend",this._onDragEnd);return b},makeListSortable:function(d){var c=ToolMan.helpers();var e=ToolMan.coordinates();var a=d.getElementsByTagName("li");c.map(a,function(j){var k=dragsort.makeSortable(j);k.setThreshold(4);var h,g;k.addTransform(function(m,l){return m.constrainTo(h,g)});k.register("dragstart",function(){var l=d.getElementsByTagName("li");h=g=e.topLeftOffset(l[0]);for(var m=1,p=l.length;m<p;m++){var o=e.topLeftOffset(l[m]);h=h.min(o);g=g.max(o)}})});for(var b=1,f=arguments.length;b<f;b++){c.map(a,arguments[b])}},_onDragStart:function(a){},_onDragMove:function(f){var a=ToolMan.helpers();var g=ToolMan.coordinates();var k=f.group.element;var b=f.transformedMouseOffset;var j=null;var d=a.previousItem(k,k.nodeName);while(d!=null){var e=g.bottomRightOffset(d);if(b.y<=e.y&&b.x<=e.x){j=d}d=a.previousItem(d,k.nodeName)}if(j!=null){a.moveBefore(k,j);return}var c=a.nextItem(k,k.nodeName);while(c!=null){var h=g.topLeftOffset(c);if(h.y<=b.y&&h.x<=b.x){j=c}c=a.nextItem(c,k.nodeName)}if(j!=null){a.moveBefore(k,a.nextItem(j,k.nodeName));return}},_onDragEnd:function(a){ToolMan.coordinates().create(0,0).reposition(a.group.element)}};