/*** MochiKit.MochiKit 1.4.2 : PACKED VERSION THIS FILE IS AUTOMATICALLY GENERATED. If creating patches, please diff against the source tree, not this file. See for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ if(typeof (dojo)!="undefined"){dojo.provide("MochiKit.Base")}if(typeof (MochiKit)=="undefined"){MochiKit={}}if(typeof (MochiKit.Base)=="undefined"){MochiKit.Base={}}if(typeof (MochiKit.__export__)=="undefined"){MochiKit.__export__=(MochiKit.__compat__||(typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined"))}MochiKit.Base.VERSION="1.4.2";MochiKit.Base.NAME="MochiKit.Base";MochiKit.Base.update=function(D,C){if(D===null||D===undefined){D={}}for(var B=1;B=0;D--){C.unshift(F[D])}}else{E.push(F)}}return E},extend:function(D,E,B){if(!B){B=0}if(E){var A=E.length;if(typeof (A)!="number"){if(typeof (MochiKit.Iter)!="undefined"){E=MochiKit.Iter.list(E);A=E.length}else{throw new TypeError("Argument not an array-like and MochiKit.Iter not present")}}if(!D){D=[]}for(var C=B;C>A},zrshift:function(B,A){return B>>>A},eq:function(B,A){return B==A},ne:function(B,A){return B!=A},gt:function(B,A){return B>A},ge:function(B,A){return B>=A},lt:function(B,A){return BB){H=B}}I=[];for(D=0;D=0;G--){H=[E[G].apply(this,H)]}return H[0]}},bind:function(G,F){if(typeof (G)=="string"){G=F[G]}var D=G.im_func;var C=G.im_preargs;var B=G.im_self;var A=MochiKit.Base;if(typeof (G)=="function"&&typeof (G.apply)=="undefined"){G=A._wrapDumbFunction(G)}if(typeof (D)!="function"){D=G}if(typeof (F)!="undefined"){B=F}if(typeof (C)=="undefined"){C=[]}else{C=C.slice()}A.extend(C,arguments,2);var E=function(){var I=arguments;var J=arguments.callee;if(J.im_preargs.length>0){I=A.concat(J.im_preargs,I)}var H=J.im_self;if(!H){H=this}return J.im_func.apply(H,I)};E.im_self=B;E.im_func=D;E.im_preargs=C;return E},bindLate:function(B,E){var A=MochiKit.Base;if(typeof (B)!="string"){return A.bind.apply(this,arguments)}var D=A.extend([],arguments,2);var C=function(){var H=arguments;var G=arguments.callee;if(G.im_preargs.length>0){H=A.concat(G.im_preargs,H)}var F=G.im_self;if(!F){F=this}return F[G.im_func].apply(F,H)};C.im_self=E;C.im_func=B;C.im_preargs=D;return C},bindMethods:function(D){var C=MochiKit.Base.bind;for(var B in D){var A=D[B];if(typeof (A)=="function"){D[B]=C(A,D)}}},registerComparator:function(D,C,B,A){MochiKit.Base.comparatorRegistry.register(D,C,B,A)},_primitives:{"boolean":true,string:true,number:true},compare:function(D,B){if(D==B){return 0}var E=(typeof (D)=="undefined"||D===null);var C=(typeof (B)=="undefined"||B===null);if(E&&C){return 0}else{if(E){return -1}else{if(C){return 1}}}var A=MochiKit.Base;var H=A._primitives;if(!(typeof (D) in H&&typeof (B) in H)){try{return A.comparatorRegistry.match(D,B)}catch(F){if(F!=A.NotFound){throw F}}}if(DB){return 1}}var G=A.repr;throw new TypeError(G(D)+" and "+G(B)+" can not be compared")},compareDateLike:function(B,A){return MochiKit.Base.compare(B.getTime(),A.getTime())},compareArrayLike:function(B,A){var D=MochiKit.Base.compare;var G=B.length;var F=0;if(G>A.length){F=1;G=A.length}else{if(G=0;C--){D+=E[C]}}else{D+=E}}if(F<=0){throw new TypeError("mean() requires at least one argument")}return D/F},median:function(){var B=MochiKit.Base.flattenArguments(arguments);if(B.length===0){throw new TypeError("median() requires at least one argument")}B.sort(compare);if(B.length%2==0){var A=B.length/2;return(B[A]+B[A-1])/2}else{return B[(B.length-1)/2]}},findValue:function(A,D,C,B){if(typeof (B)=="undefined"||B===null){B=A.length}if(typeof (C)=="undefined"||C===null){C=0}var F=MochiKit.Base.compare;for(var E=C;E0))){var F=MochiKit.DOM.formContents(I);I=F[0];H=F[1]}else{if(arguments.length==1){if(typeof (I.length)=="number"&&I.length==2){return arguments.callee(I[0],I[1])}var A=I;I=[];H=[];for(var B in A){var J=A[B];if(typeof (J)=="function"){continue}else{if(MochiKit.Base.isArrayLike(J)){for(var C=0;C=E){throw B.StopIteration}G+=F;return H}}},imap:function(B,H,F){var A=MochiKit.Base;var C=MochiKit.Iter;var D=A.map(C.iter,A.extend(null,arguments,1));var G=A.map;var E=C.next;return{repr:function(){return"imap(...)"},toString:A.forwardCall("repr"),next:function(){return B.apply(this,G(E,D))}}},applymap:function(B,D,C){D=MochiKit.Iter.iter(D);var A=MochiKit.Base;return{repr:function(){return"applymap(...)"},toString:A.forwardCall("repr"),next:function(){return B.apply(C,D.next())}}},chain:function(E,D){var B=MochiKit.Iter;var A=MochiKit.Base;if(arguments.length==1){return B.iter(arguments[0])}var C=A.map(B.iter,arguments);return{repr:function(){return"chain(...)"},toString:A.forwardCall("repr"),next:function(){while(C.length>1){try{var G=C[0].next();return G}catch(H){if(H!=B.StopIteration){throw H}C.shift();var G=C[0].next();return G}}if(C.length==1){var F=C.shift();this.next=A.bind("next",F);return this.next()}throw B.StopIteration}}},takewhile:function(C,B){var A=MochiKit.Iter;B=A.iter(B);return{repr:function(){return"takewhile(...)"},toString:MochiKit.Base.forwardCall("repr"),next:function(){var D=B.next();if(!C(D)){this.next=function(){throw A.StopIteration};this.next()}return D}}},dropwhile:function(C,B){B=MochiKit.Iter.iter(B);var A=MochiKit.Base;var D=A.bind;return{repr:function(){return"dropwhile(...)"},toString:A.forwardCall("repr"),next:function(){while(true){var E=B.next();if(!C(E)){break}}this.next=D("next",B);return E}}},_tee:function(B,C,E){C.pos[B]=-1;var A=MochiKit.Base;var D=A.listMin;return{repr:function(){return"tee("+B+", ...)"},toString:A.forwardCall("repr"),next:function(){var G;var F=C.pos[B];if(F==C.max){G=E.next();C.deque.push(G);C.max+=1;C.pos[B]+=1}else{G=C.deque[F-C.min];C.pos[B]+=1;if(F==C.min&&D(C.pos)!=C.min){C.min+=1;C.deque.shift()}}return G}}},tee:function(G,F){var E=[];var D={pos:[],deque:[],max:-1,min:-1};if(arguments.length==1||typeof (F)=="undefined"||F===null){F=2}var B=MochiKit.Iter;G=B.iter(G);var A=B._tee;for(var C=0;C0&&C>=A)||(B<0&&C<=A)){throw MochiKit.Iter.StopIteration}var D=C;C+=B;return D},repr:function(){return"range("+[C,A,B].join(", ")+")"},toString:MochiKit.Base.forwardCall("repr")}},sum:function(E,C){if(typeof (C)=="undefined"||C===null){C=0}var A=C;var B=MochiKit.Iter;E=B.iter(E);try{while(true){A+=E.next()}}catch(D){if(D!=B.StopIteration){throw D}}return A},exhaust:function(B){var A=MochiKit.Iter;B=A.iter(B);try{while(true){B.next()}}catch(C){if(C!=A.StopIteration){throw C}}},forEach:function(C,E,G){var A=MochiKit.Base;var B=MochiKit.Iter;if(arguments.length>2){E=A.bind(E,G)}if(A.isArrayLike(C)&&!B.isIterable(C)){try{for(var D=0;D=A.length){throw MochiKit.Iter.StopIteration}return A[B++]}}},hasIterateNext:function(A){return(A&&typeof (A.iterateNext)=="function")},iterateNextIter:function(A){return{repr:function(){return"iterateNextIter(...)"},toString:MochiKit.Base.forwardCall("repr"),next:function(){var B=A.iterateNext();if(B===null||B===undefined){throw MochiKit.Iter.StopIteration}return B}}}});MochiKit.Iter.EXPORT_OK=["iteratorRegistry","arrayLikeIter","hasIterateNext","iterateNextIter"];MochiKit.Iter.EXPORT=["StopIteration","registerIteratorFactory","iter","count","cycle","repeat","next","izip","ifilter","ifilterfalse","islice","imap","applymap","chain","takewhile","dropwhile","tee","list","reduce","range","sum","exhaust","forEach","every","sorted","reversed","some","iextend","groupby","groupby_as_array"];MochiKit.Iter.__new__=function(){var A=MochiKit.Base;if(typeof (StopIteration)!="undefined"){this.StopIteration=StopIteration}else{this.StopIteration=new A.NamedError("StopIteration")}this.iteratorRegistry=new A.AdapterRegistry();this.registerIteratorFactory("arrayLike",A.isArrayLike,this.arrayLikeIter);this.registerIteratorFactory("iterateNext",this.hasIterateNext,this.iterateNextIter);this.EXPORT_TAGS={":common":this.EXPORT,":all":A.concat(this.EXPORT,this.EXPORT_OK)};A.nameFunctions(this)};MochiKit.Iter.__new__();if(MochiKit.__export__){reduce=MochiKit.Iter.reduce}MochiKit.Base._exportSymbols(this,MochiKit.Iter);MochiKit.Base._deps("Logging",["Base"]);MochiKit.Logging.NAME="MochiKit.Logging";MochiKit.Logging.VERSION="1.4.2";MochiKit.Logging.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"};MochiKit.Logging.toString=function(){return this.__repr__()};MochiKit.Logging.EXPORT=["LogLevel","LogMessage","Logger","alertListener","logger","log","logError","logDebug","logFatal","logWarning"];MochiKit.Logging.EXPORT_OK=["logLevelAtLeast","isLogMessage","compareLogMessage"];MochiKit.Logging.LogMessage=function(A,B,C){this.num=A;this.level=B;this.info=C;this.timestamp=new Date()};MochiKit.Logging.LogMessage.prototype={repr:function(){var A=MochiKit.Base;return"LogMessage("+A.map(A.repr,[this.num,this.level,this.info]).join(", ")+")"},toString:MochiKit.Base.forwardCall("repr")};MochiKit.Base.update(MochiKit.Logging,{logLevelAtLeast:function(B){var A=MochiKit.Logging;if(typeof (B)=="string"){B=A.LogLevel[B]}return function(D){var C=D.level;if(typeof (C)=="string"){C=A.LogLevel[C]}return C>=B}},isLogMessage:function(){var A=MochiKit.Logging.LogMessage;for(var B=0;B=MochiKit.Logging.LogLevel.FATAL){A="FATAL"}else{if(A>=MochiKit.Logging.LogLevel.ERROR){A="ERROR"}else{if(A>=MochiKit.Logging.LogLevel.WARNING){A="WARNING"}else{if(A>=MochiKit.Logging.LogLevel.INFO){A="INFO"}else{A="DEBUG"}}}}}var C=new MochiKit.Logging.LogMessage(this.counter,A,MochiKit.Base.extend(null,arguments,1));this._messages.push(C);this.dispatchListeners(C);if(this.useNativeConsole){this.logToConsole(C.level+": "+C.info.join(" "))}this.counter+=1;while(this.maxSize>=0&&this._messages.length>this.maxSize){this._messages.shift()}},getMessages:function(B){var A=0;if(!(typeof (B)=="undefined"||B===null)){A=Math.max(0,this._messages.length-B)}return this._messages.slice(A)},getMessageText:function(B){if(typeof (B)=="undefined"||B===null){B=30}var C=this.getMessages(B);if(C.length){var A=map(function(D){return"\n ["+D.num+"] "+D.level+": "+D.info.join(" ")},C);A.unshift("LAST "+C.length+" MESSAGES:");return A.join("")}return""},debuggingBookmarklet:function(A){if(typeof (MochiKit.LoggingPane)=="undefined"){alert(this.getMessageText())}else{MochiKit.LoggingPane.createLoggingPane(A||false)}}};MochiKit.Logging.__new__=function(){this.LogLevel={ERROR:40,FATAL:50,WARNING:30,INFO:20,DEBUG:10};var A=MochiKit.Base;A.registerComparator("LogMessage",this.isLogMessage,this.compareLogMessage);var F=A.partial;var E=this.Logger;var D=E.prototype.baseLog;A.update(this.Logger.prototype,{debug:F(D,"DEBUG"),log:F(D,"INFO"),error:F(D,"ERROR"),fatal:F(D,"FATAL"),warning:F(D,"WARNING")});var B=this;var C=function(G){return function(){B.logger[G].apply(B.logger,arguments)}};this.log=C("log");this.logError=C("error");this.logDebug=C("debug");this.logFatal=C("fatal");this.logWarning=C("warning");this.logger=new E();this.logger.useNativeConsole=true;this.EXPORT_TAGS={":common":this.EXPORT,":all":A.concat(this.EXPORT,this.EXPORT_OK)};A.nameFunctions(this)};if(typeof (printfire)=="undefined"&&typeof (document)!="undefined"&&document.createEvent&&typeof (dispatchEvent)!="undefined"){printfire=function(){printfire.args=arguments;var A=document.createEvent("Events");A.initEvent("printfire",false,true);dispatchEvent(A)}}MochiKit.Logging.__new__();MochiKit.Base._exportSymbols(this,MochiKit.Logging);MochiKit.Base._deps("DateTime",["Base"]);MochiKit.DateTime.NAME="MochiKit.DateTime";MochiKit.DateTime.VERSION="1.4.2";MochiKit.DateTime.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"};MochiKit.DateTime.toString=function(){return this.__repr__()};MochiKit.DateTime.isoDate=function(C){C=C+"";if(typeof (C)!="string"||C.length===0){return null}var B=C.split("-");if(B.length===0){return null}var A=new Date(B[0],B[1]-1,B[2]);A.setFullYear(B[0]);A.setMonth(B[1]-1);A.setDate(B[2]);return A};MochiKit.DateTime._isoRegexp=/(\d{4,})(?:-(\d{1,2})(?:-(\d{1,2})(?:[T ](\d{1,2}):(\d{1,2})(?::(\d{1,2})(?:\.(\d+))?)?(?:(Z)|([+-])(\d{1,2})(?::(\d{1,2}))?)?)?)?)?/;MochiKit.DateTime.isoTimestamp=function(H){H=H+"";if(typeof (H)!="string"||H.length===0){return null}var G=H.match(MochiKit.DateTime._isoRegexp);if(typeof (G)=="undefined"||G===null){return null}var I,B,J,C,D,E,A;I=parseInt(G[1],10);if(typeof (G[2])=="undefined"||G[2]===""){return new Date(I)}B=parseInt(G[2],10)-1;J=parseInt(G[3],10);if(typeof (G[4])=="undefined"||G[4]===""){return new Date(I,B,J)}C=parseInt(G[4],10);D=parseInt(G[5],10);E=(typeof (G[6])!="undefined"&&G[6]!=="")?parseInt(G[6],10):0;if(typeof (G[7])!="undefined"&&G[7]!==""){A=Math.round(1000*parseFloat("0."+G[7]))}else{A=0}if((typeof (G[8])=="undefined"||G[8]==="")&&(typeof (G[9])=="undefined"||G[9]==="")){return new Date(I,B,J,C,D,E,A)}var F;if(typeof (G[9])!="undefined"&&G[9]!==""){F=parseInt(G[10],10)*3600000;if(typeof (G[11])!="undefined"&&G[11]!==""){F+=parseInt(G[11],10)*60000}if(G[9]=="-"){F=-F}}else{F=0}return new Date(Date.UTC(I,B,J,C,D,E,A)-F)};MochiKit.DateTime.toISOTime=function(B,E){if(typeof (B)=="undefined"||B===null){return null}var D=B.getHours();var F=B.getMinutes();var C=B.getSeconds();var A=[((E&&(D<10))?"0"+D:D),((F<10)?"0"+F:F),((C<10)?"0"+C:C)];return A.join(":")};MochiKit.DateTime.toISOTimestamp=function(C,B){if(typeof (C)=="undefined"||C===null){return null}var A=B?"T":" ";var D=B?"Z":"";if(B){C=new Date(C.getTime()+(C.getTimezoneOffset()*60000))}return MochiKit.DateTime.toISODate(C)+A+MochiKit.DateTime.toISOTime(C,B)+D};MochiKit.DateTime.toISODate=function(B){if(typeof (B)=="undefined"||B===null){return null}var C=MochiKit.DateTime._padTwo;var A=MochiKit.DateTime._padFour;return[A(B.getFullYear()),C(B.getMonth()+1),C(B.getDate())].join("-")};MochiKit.DateTime.americanDate=function(B){B=B+"";if(typeof (B)!="string"||B.length===0){return null}var A=B.split("/");return new Date(A[2],A[0]-1,A[1])};MochiKit.DateTime._padTwo=function(A){return(A>9)?A:"0"+A};MochiKit.DateTime._padFour=function(A){switch(A.toString().length){case 1:return"000"+A;break;case 2:return"00"+A;break;case 3:return"0"+A;break;case 4:default:return A}};MochiKit.DateTime.toPaddedAmericanDate=function(A){if(typeof (A)=="undefined"||A===null){return null}var B=MochiKit.DateTime._padTwo;return[B(A.getMonth()+1),B(A.getDate()),A.getFullYear()].join("/")};MochiKit.DateTime.toAmericanDate=function(A){if(typeof (A)=="undefined"||A===null){return null}return[A.getMonth()+1,A.getDate(),A.getFullYear()].join("/")};MochiKit.DateTime.EXPORT=["isoDate","isoTimestamp","toISOTime","toISOTimestamp","toISODate","americanDate","toPaddedAmericanDate","toAmericanDate"];MochiKit.DateTime.EXPORT_OK=[];MochiKit.DateTime.EXPORT_TAGS={":common":MochiKit.DateTime.EXPORT,":all":MochiKit.DateTime.EXPORT};MochiKit.DateTime.__new__=function(){var B=this.NAME+".";for(var A in this){var D=this[A];if(typeof (D)=="function"&&typeof (D.NAME)=="undefined"){try{D.NAME=B+A}catch(C){}}}};MochiKit.DateTime.__new__();if(typeof (MochiKit.Base)!="undefined"){MochiKit.Base._exportSymbols(this,MochiKit.DateTime)}else{(function(D,B){if((typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")||(MochiKit.__export__===false)){var C=B.EXPORT_TAGS[":all"];for(var A=0;AC){var O=K.length-C;R=L.separator+K.substring(O,K.length)+R;K=K.substring(0,O)}}R=K+R;if(E>0){while(J.length0){return B.substring(0,B.length-3)}else{if(B.charAt(B.length-1)=="0"){return B.substring(0,B.length-1)}else{return B}}};MochiKit.Format.lstrip=function(A,B){A=A+"";if(typeof (A)!="string"){return null}if(!B){return A.replace(/^\s+/,"")}else{return A.replace(new RegExp("^["+B+"]+"),"")}};MochiKit.Format.rstrip=function(B,A){B=B+"";if(typeof (B)!="string"){return null}if(!A){return B.replace(/\s+$/,"")}else{return B.replace(new RegExp("["+A+"]+$"),"")}};MochiKit.Format.strip=function(C,A){var B=MochiKit.Format;return B.rstrip(B.lstrip(C,A),A)};MochiKit.Format.truncToFixed=function(D,C){var B=Math.floor(D).toFixed(0);if(D<0){B=Math.ceil(D).toFixed(0);if(B.charAt(0)!="-"&&C>0){B="-"+B}}if(B.indexOf("e")<0&&C>0){var A=D.toString();if(A.indexOf("e")>0){A="."}else{if(A.indexOf(".")<0){A="."}else{A=A.substring(A.indexOf("."))}}if(A.length-1>C){A=A.substring(0,C+1)}while(A.length-11){A=MochiKit.Base.partial.apply(null,arguments)}return this.addCallbacks(A,A)},addCallback:function(A){if(arguments.length>1){A=MochiKit.Base.partial.apply(null,arguments)}return this.addCallbacks(A,null)},addErrback:function(A){if(arguments.length>1){A=MochiKit.Base.partial.apply(null,arguments)}return this.addCallbacks(null,A)},addCallbacks:function(A,B){if(this.chained){throw new Error("Chained Deferreds can not be re-used")}this.chain.push([A,B]);if(this.fired>=0){this._fire()}return this},_fire:function(){var B=this.chain;var E=this.fired;var D=this.results[E];var C=this;var A=null;while(B.length>0&&this.paused===0){var H=B.shift();var G=H[E];if(G===null){continue}try{D=G(D);E=((D instanceof Error)?1:0);if(D instanceof MochiKit.Async.Deferred){A=function(I){C._resback(I);C.paused--;if((C.paused===0)&&(C.fired>=0)){C._fire()}};this.paused++}}catch(F){E=1;if(!(F instanceof Error)){F=new MochiKit.Async.GenericError(F)}D=F}}this.fired=E;this.results[E]=D;if(A&&this.paused){D.addBoth(A);D.chained=true}}};MochiKit.Base.update(MochiKit.Async,{evalJSONRequest:function(A){return MochiKit.Base.evalJSON(A.responseText)},succeed:function(B){var A=new MochiKit.Async.Deferred();A.callback.apply(A,arguments);return A},fail:function(A){var B=new MochiKit.Async.Deferred();B.errback.apply(B,arguments);return B},getXMLHttpRequest:function(){var A=arguments.callee;if(!A.XMLHttpRequest){var C=[function(){return new XMLHttpRequest()},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.4.0")},function(){throw new MochiKit.Async.BrowserComplianceError("Browser does not support XMLHttpRequest")}];for(var B=0;B1){var B=MochiKit.Base;var A=B.queryString.apply(null,B.extend(null,arguments,1));if(A){return C+"?"+A}}return C},doSimpleXMLHttpRequest:function(B){var A=MochiKit.Async;B=A._buildURL.apply(A,arguments);return A.doXHR(B)},loadJSONDoc:function(B){var A=MochiKit.Async;B=A._buildURL.apply(A,arguments);var C=A.doXHR(B,{mimeType:"text/plain",headers:[["Accept","application/json"]]});C=C.addCallback(A.evalJSONRequest);return C},wait:function(B,E){var D=new MochiKit.Async.Deferred();var A=MochiKit.Base;if(typeof (E)!="undefined"){D.addCallback(function(){return E})}var C=setTimeout(A.bind("callback",D),Math.floor(B*1000));D.canceller=function(){try{clearTimeout(C)}catch(F){}};return D},callLater:function(D,C){var A=MochiKit.Base;var B=A.partial.apply(A,A.extend(null,arguments,1));return MochiKit.Async.wait(D).addCallback(function(E){return B()})}});MochiKit.Async.DeferredLock=function(){this.waiting=[];this.locked=false;this.id=this._nextId()};MochiKit.Async.DeferredLock.prototype={__class__:MochiKit.Async.DeferredLock,acquire:function(){var A=new MochiKit.Async.Deferred();if(this.locked){this.waiting.push(A)}else{this.locked=true;A.callback(this)}return A},release:function(){if(!this.locked){throw TypeError("Tried to release an unlocked DeferredLock")}this.locked=false;if(this.waiting.length>0){this.locked=true;this.waiting.shift().callback(this)}},_nextId:MochiKit.Base.counter(),repr:function(){var A;if(this.locked){A="locked, "+this.waiting.length+" waiting"}else{A="unlocked"}return"DeferredLock("+this.id+", "+A+")"},toString:MochiKit.Base.forwardCall("repr")};MochiKit.Async.DeferredList=function(E,I,H,G,B){MochiKit.Async.Deferred.apply(this,[B]);this.list=E;var A=[];this.resultList=A;this.finishedCount=0;this.fireOnOneCallback=I;this.fireOnOneErrback=H;this.consumeErrors=G;var C=MochiKit.Base.bind(this._cbDeferred,this);for(var D=0;D=0){var I=L.options[L.selectedIndex];var F=I.value;if(!F){var J=I.outerHTML;if(J&&!J.match(/^[^>]+\svalue\s*=/i)){F=I.text}}D.push(G);C.push(F);return null}D.push(G);C.push("");return null}else{var K=L.options;if(!K.length){D.push(G);C.push("");return null}for(var H=0;H]+\svalue\s*=/i)){F=I.text}}D.push(G);C.push(F)}return null}}if(M==="FORM"||M==="P"||M==="SPAN"||M==="DIV"){return L.childNodes}D.push(G);C.push(L.value||"");return null}return L.childNodes});return[D,C]},withDocument:function(F,C){var B=MochiKit.DOM;var A=B._document;var E;try{B._document=F;E=C()}catch(D){B._document=A;throw D}B._document=A;return E},registerDOMConverter:function(C,B,D,A){MochiKit.DOM.domConverters.register(C,B,D,A)},coerceToDOM:function(D,N){var E=MochiKit.Base;var G=MochiKit.Iter;var M=MochiKit.DOM;if(G){var H=G.iter;var L=G.repeat}var B=E.map;var K=M.domConverters;var J=arguments.callee;var I=E.NotFound;while(true){if(typeof (D)=="undefined"||D===null){return null}if(typeof (D)=="function"&&typeof (D.length)=="number"&&!(D instanceof Function)){D=G?G.list(D):E.extend(null,D)}if(typeof (D.nodeType)!="undefined"&&D.nodeType>0){return D}if(typeof (D)=="number"||typeof (D)=="boolean"){D=D.toString()}if(typeof (D)=="string"){return M._document.createTextNode(D)}if(typeof (D.__dom__)=="function"){D=D.__dom__(N);continue}if(typeof (D.dom)=="function"){D=D.dom(N);continue}if(typeof (D)=="function"){D=D.apply(N,[N]);continue}if(G){var A=null;try{A=H(D)}catch(F){}if(A){return B(J,A,L(N))}}else{if(E.isArrayLike(D)){var C=function(O){return J(O,N)};return B(C,D)}}try{D=K.match(D,N);continue}catch(F){if(F!=I){throw F}}return M._document.createTextNode(D.toString())}return undefined},isChildNode:function(C,B){var A=MochiKit.DOM;if(typeof (C)=="string"){C=A.getElement(C)}if(typeof (B)=="string"){B=A.getElement(B)}if(typeof (C)=="undefined"||C===null){return false}while(C!=null&&C!==A._document){if(C===B){return true}C=C.parentNode}return false},setNodeAttribute:function(C,B,A){var E={};E[B]=A;try{return MochiKit.DOM.updateNodeAttributes(C,E)}catch(D){}return null},getNodeAttribute:function(F,A){var B=MochiKit.DOM;var E=B.attributeArray.renames[A];var D=B.attributeArray.ignoreAttr[A];F=B.getElement(F);try{if(E){return F[E]}var C=F.getAttribute(A);if(C!=D){return C}}catch(G){}return null},removeNodeAttribute:function(D,A){var B=MochiKit.DOM;var C=B.attributeArray.renames[A];D=B.getElement(D);try{if(C){return D[C]}return D.removeAttribute(A)}catch(E){}return null},updateNodeAttributes:function(C,G){var D=C;var I=MochiKit.DOM;if(typeof (C)=="string"){D=I.getElement(C)}if(G){var F=MochiKit.Base.updatetree;if(I.attributeArray.compliant){for(var E in G){var H=G[E];if(typeof (H)=="object"&&typeof (D[E])=="object"){if(E=="style"&&MochiKit.Style){MochiKit.Style.setStyle(D,H)}else{F(D[E],H)}}else{if(E.substring(0,2)=="on"){if(typeof (H)=="string"){H=new Function(H)}D[E]=H}else{D.setAttribute(E,H)}}if(typeof (D[E])=="string"&&D[E]!=H){D[E]=H}}}else{var B=I.attributeArray.renames;for(var E in G){H=G[E];var A=B[E];if(E=="style"&&typeof (H)=="string"){D.style.cssText=H}else{if(typeof (A)=="string"){D[A]=H}else{if(typeof (D[E])=="object"&&typeof (H)=="object"){if(E=="style"&&MochiKit.Style){MochiKit.Style.setStyle(D,H)}else{F(D[E],H)}}else{if(E.substring(0,2)=="on"){if(typeof (H)=="string"){H=new Function(H)}D[E]=H}else{D.setAttribute(E,H)}}}}if(typeof (D[E])=="string"&&D[E]!=H){D[E]=H}}}}return D},appendChildNodes:function(C){var B=C;var A=MochiKit.DOM;if(typeof (C)=="string"){B=A.getElement(C)}var F=[A.coerceToDOM(MochiKit.Base.extend(null,arguments,1),B)];var D=MochiKit.Base.concat;while(F.length){var E=F.shift();if(typeof (E)=="undefined"||E===null){}else{if(typeof (E.nodeType)=="number"){B.appendChild(E)}else{F=D(E,F)}}}return B},insertSiblingNodesBefore:function(F){var E=F;var A=MochiKit.DOM;if(typeof (F)=="string"){E=A.getElement(F)}var D=[A.coerceToDOM(MochiKit.Base.extend(null,arguments,1),E)];var C=E.parentNode;var B=MochiKit.Base.concat;while(D.length){var G=D.shift();if(typeof (G)=="undefined"||G===null){}else{if(typeof (G.nodeType)=="number"){C.insertBefore(G,E)}else{D=B(G,D)}}}return C},insertSiblingNodesAfter:function(C){var B=C;var A=MochiKit.DOM;if(typeof (C)=="string"){B=A.getElement(C)}var D=[A.coerceToDOM(MochiKit.Base.extend(null,arguments,1),B)];if(B.nextSibling){return A.insertSiblingNodesBefore(B.nextSibling,D)}else{return A.appendChildNodes(B.parentNode,D)}},replaceChildNodes:function(D){var C=D;var B=MochiKit.DOM;if(typeof (D)=="string"){C=B.getElement(D);arguments[0]=C}var A;while((A=C.firstChild)){C.removeChild(A)}if(arguments.length<2){return C}else{return B.appendChildNodes.apply(this,arguments)}},createDOM:function(A,H){var B;var I=MochiKit.DOM;var C=MochiKit.Base;if(typeof (H)=="string"||typeof (H)=="number"){var F=C.extend([A,null],arguments,1);return arguments.callee.apply(this,F)}if(typeof (A)=="string"){var G=I._xhtml;if(H&&!I.attributeArray.compliant){var E="";if("name" in H){E+=' name="'+I.escapeHTML(H.name)+'"'}if(A=="input"&&"type" in H){E+=' type="'+I.escapeHTML(H.type)+'"'}if(E){A="<"+A+E+">";G=false}}var D=I._document;if(G&&D===document){B=D.createElementNS("http://www.w3.org/1999/xhtml",A)}else{B=D.createElement(A)}}else{B=A}if(H){I.updateNodeAttributes(B,H)}if(arguments.length<=2){return B}else{var F=C.extend([B],arguments,2);return I.appendChildNodes.apply(this,F)}},createDOMFunc:function(){var A=MochiKit.Base;return A.partial.apply(this,A.extend([MochiKit.DOM.createDOM],arguments))},removeElement:function(B){var A=MochiKit.DOM;var C=A.coerceToDOM(A.getElement(B));C.parentNode.removeChild(C);return C},swapDOM:function(C,D){var B=MochiKit.DOM;C=B.getElement(C);var A=C.parentNode;if(D){D=B.coerceToDOM(B.getElement(D),A);A.replaceChild(D,C)}else{A.removeChild(C)}return D},getElement:function(B){var A=MochiKit.DOM;if(arguments.length==1){return((typeof (B)=="string")?A._document.getElementById(B):B)}else{return MochiKit.Base.map(A.getElement,arguments)}},getElementsByTagAndClassName:function(H,G,F){var K=MochiKit.DOM;if(typeof (H)=="undefined"||H===null){H="*"}if(typeof (F)=="undefined"||F===null){F=K._document}F=K.getElement(F);if(F==null){return[]}var D=(F.getElementsByTagName(H)||K._document.all);if(typeof (G)=="undefined"||G===null){return MochiKit.Base.extend(null,D)}var C=[];for(var I=0;I/g,">")},toHTML:function(A){return MochiKit.DOM.emitHTML(A).join("")},emitHTML:function(H,K){if(typeof (K)=="undefined"||K===null){K=[]}var J=[H];var M=MochiKit.DOM;var F=M.escapeHTML;var E=M.attributeArray;while(J.length){H=J.pop();if(typeof (H)=="string"){K.push(H)}else{if(H.nodeType==1){K.push("<"+H.tagName.toLowerCase());var C=[];var B=E(H);for(var I=0;I");J.push("");var D=H.childNodes;for(I=D.length-1;I>=0;I--){J.push(D[I])}}else{K.push("/>")}}else{if(H.nodeType==3){K.push(F(H.nodeValue))}}}}return K},scrapeText:function(B,A){var C=[];(function(E){var G=E.childNodes;if(G){for(var D=0;D0){var K=B.filter;D=function(M){return K(D.ignoreAttrFilter,M.attributes)};D.ignoreAttr={};var J=F.attributes;var H=D.ignoreAttr;for(var E=0;E0){H(A(G))}},buildMatchExpression:function(){var A=MochiKit.Base.repr;var K=this.params;var I=[];var G,B;function H(M){return"MochiKit.Base.filter(function (node) { return node.nodeType == 1; }, "+M+".childNodes)"}if(K.wildcard){I.push("true")}if(G=K.id){I.push("element.id == "+A(G))}if(G=K.tagName){I.push("element.tagName.toUpperCase() == "+A(G))}if((G=K.classNames).length>0){for(B=0;B0){for(B=0;B -1");break;case"^=":I.push(O+".substring(0, "+N.value.length+") == "+A(N.value));break;case"$=":I.push(O+".substring("+O+".length - "+N.value.length+") == "+A(N.value));break;case"*=":I.push(O+".match("+A(N.value)+")");break;case"|=":I.push(M("-")+"[0].toUpperCase() == "+A(N.value.toUpperCase()));break;case"!=":I.push(O+" != "+A(N.value));break;case"":case undefined:break;default:throw"Unknown operator "+N.operator+" in selector"}},G)}return I.join(" && ")},compileMatcher:function(){var A="return (!element.tagName) ? false : "+this.buildMatchExpression()+";";this.match=new Function("element",A)},nthChild:function(E,D,C,B,G){var F=MochiKit.Base.filter(function(H){return H.nodeType==1},E.parentNode.childNodes);if(G){F=MochiKit.Base.filter(function(H){return H.tagName==E.tagName},F)}if(B){F=MochiKit.Iter.reversed(F)}if(D){var A=MochiKit.Base.findIdentical(F,E);return((A+1-C)/D)%1==0}else{return C==MochiKit.Base.findIdentical(F,E)+1}},isUIElement:function(A){return MochiKit.Base.findValue(["input","button","select","option","textarea","object"],A.tagName.toLowerCase())>-1},findElements:function(F,D){var C;if(D==undefined){D=""}function A(J,I){if(D==""){return MochiKit.DOM.isChildNode(J,I)}else{if(D==">"){return J.parentNode===I}else{if(D=="+"){return J===B(I)}else{if(D=="~"){var H=I;while(H=B(H)){if(J===H){return true}}return false}else{throw"Invalid axis: "+D}}}}}if(C=MochiKit.DOM.getElement(this.params.id)){if(this.match(C)){if(!F||A(C,F)){return[C]}}}function B(H){H=H.nextSibling;while(H&&H.nodeType!=1){H=H.nextSibling}return H}if(D==""){F=(F||MochiKit.DOM.currentDocument()).getElementsByTagName(this.params.tagName||"*")}else{if(D==">"){if(!F){throw"> combinator not allowed without preceeding expression"}F=MochiKit.Base.filter(function(H){return H.nodeType==1},F.childNodes)}else{if(D=="+"){if(!F){throw"+ combinator not allowed without preceeding expression"}F=B(F)&&[B(F)]}else{if(D=="~"){if(!F){throw"~ combinator not allowed without preceeding expression"}var G=[];while(B(F)){F=B(F);G.push(F)}F=G}}}}if(!F){return[]}var E=MochiKit.Base.filter(MochiKit.Base.bind(function(H){return this.match(H)},this),F);return E},repr:function(){return"Selector("+this.expression+")"},toString:MochiKit.Base.forwardCall("repr")};MochiKit.Base.update(MochiKit.Selector,{findChildElements:function(B,A){var C=function(D){var F=[];for(var E=0;E+~]$/)){F=match[0];return J}else{var I=new MochiKit.Selector.Selector(K);var H=MochiKit.Iter.reduce(function(M,L){return MochiKit.Base.extend(M,I.findElements(L||B,F))},J,[]);F="";return H}};var G=E.replace(/(^\s+|\s+$)/g,"").split(/\s+/);return C(MochiKit.Iter.reduce(D,G,[null]))},A))},findDocElements:function(){return MochiKit.Selector.findChildElements(MochiKit.DOM.currentDocument(),arguments)},__new__:function(){var A=MochiKit.Base;this.$$=this.findDocElements;this.EXPORT_TAGS={":common":this.EXPORT,":all":A.concat(this.EXPORT,this.EXPORT_OK)};A.nameFunctions(this)}});MochiKit.Selector.__new__();MochiKit.Base._exportSymbols(this,MochiKit.Selector);MochiKit.Base._deps("Style",["Base","DOM"]);MochiKit.Style.NAME="MochiKit.Style";MochiKit.Style.VERSION="1.4.2";MochiKit.Style.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"};MochiKit.Style.toString=function(){return this.__repr__()};MochiKit.Style.EXPORT_OK=[];MochiKit.Style.EXPORT=["setStyle","setOpacity","getStyle","getElementDimensions","elementDimensions","setElementDimensions","getElementPosition","elementPosition","setElementPosition","makePositioned","undoPositioned","makeClipping","undoClipping","setDisplayForElement","hideElement","showElement","getViewportDimensions","getViewportPosition","Dimensions","Coordinates"];MochiKit.Style.Dimensions=function(A,B){this.w=A;this.h=B};MochiKit.Style.Dimensions.prototype.__repr__=function(){var A=MochiKit.Base.repr;return"{w: "+A(this.w)+", h: "+A(this.h)+"}"};MochiKit.Style.Dimensions.prototype.toString=function(){return this.__repr__()};MochiKit.Style.Coordinates=function(A,B){this.x=A;this.y=B};MochiKit.Style.Coordinates.prototype.__repr__=function(){var A=MochiKit.Base.repr;return"{x: "+A(this.x)+", y: "+A(this.y)+"}"};MochiKit.Style.Coordinates.prototype.toString=function(){return this.__repr__()};MochiKit.Base.update(MochiKit.Style,{getStyle:function(B,I){var C=MochiKit.DOM;var E=C._document;B=C.getElement(B);I=MochiKit.Base.camelize(I);if(!B||B==E){return undefined}if(I=="opacity"&&typeof (B.filters)!="undefined"){var H=(MochiKit.Style.getStyle(B,"filter")||"").match(/alpha\(opacity=(.*)\)/);if(H&&H[1]){return parseFloat(H[1])/100}return 1}if(I=="float"||I=="cssFloat"||I=="styleFloat"){if(B.style["float"]){return B.style["float"]}else{if(B.style.cssFloat){return B.style.cssFloat}else{if(B.style.styleFloat){return B.style.styleFloat}else{return"none"}}}}var G=B.style?B.style[I]:null;if(!G){if(E.defaultView&&E.defaultView.getComputedStyle){var D=E.defaultView.getComputedStyle(B,null);I=I.replace(/([A-Z])/g,"-$1").toLowerCase();G=D?D.getPropertyValue(I):null}else{if(B.currentStyle){G=B.currentStyle[I];if(/^\d/.test(G)&&!/px$/.test(G)&&I!="fontWeight"){var A=B.style.left;var F=B.runtimeStyle.left;B.runtimeStyle.left=B.currentStyle.left;B.style.left=G||0;G=B.style.pixelLeft+"px";B.style.left=A;B.runtimeStyle.left=F}}}}if(I=="opacity"){G=parseFloat(G)}if(/Opera/.test(navigator.userAgent)&&(MochiKit.Base.findValue(["left","top","right","bottom"],I)!=-1)){if(MochiKit.Style.getStyle(B,"position")=="static"){G="auto"}}return G=="auto"?null:G},setStyle:function(C,B){C=MochiKit.DOM.getElement(C);for(var A in B){switch(A){case"opacity":MochiKit.Style.setOpacity(C,B[A]);break;case"float":case"cssFloat":case"styleFloat":if(typeof (C.style["float"])!="undefined"){C.style["float"]=B[A]}else{if(typeof (C.style.cssFloat)!="undefined"){C.style.cssFloat=B[A]}else{C.style.styleFloat=B[A]}}break;default:C.style[MochiKit.Base.camelize(A)]=B[A]}}},setOpacity:function(B,C){B=MochiKit.DOM.getElement(B);var A=MochiKit.Style;if(C==1){var D=/Gecko/.test(navigator.userAgent)&&!(/Konqueror|AppleWebKit|KHTML/.test(navigator.userAgent));B.style.opacity=D?0.999999:1;if(/MSIE/.test(navigator.userAgent)){B.style.filter=A.getStyle(B,"filter").replace(/alpha\([^\)]*\)/gi,"")}}else{if(C<0.00001){C=0}B.style.opacity=C;if(/MSIE/.test(navigator.userAgent)){B.style.filter=A.getStyle(B,"filter").replace(/alpha\([^\)]*\)/gi,"")+"alpha(opacity="+C*100+")"}}},getElementPosition:function(B,G){var M=MochiKit.Style;var C=MochiKit.DOM;B=C.getElement(B);if(!B||(!(B.x&&B.y)&&(!B.parentNode===null||M.getStyle(B,"display")=="none"))){return undefined}var I=new M.Coordinates(0,0);var E=null;var D=null;var H=MochiKit.DOM._document;var K=H.documentElement;var J=H.body;if(!B.parentNode&&B.x&&B.y){I.x+=B.x||0;I.y+=B.y||0}else{if(B.getBoundingClientRect){E=B.getBoundingClientRect();I.x+=E.left+(K.scrollLeft||J.scrollLeft)-(K.clientLeft||0);I.y+=E.top+(K.scrollTop||J.scrollTop)-(K.clientTop||0)}else{if(B.offsetParent){I.x+=B.offsetLeft;I.y+=B.offsetTop;D=B.offsetParent;if(D!=B){while(D){I.x+=parseInt(D.style.borderLeftWidth)||0;I.y+=parseInt(D.style.borderTopWidth)||0;I.x+=D.offsetLeft;I.y+=D.offsetTop;D=D.offsetParent}}var A=navigator.userAgent.toLowerCase();if((typeof (opera)!="undefined"&&parseFloat(opera.version())<9)||(A.indexOf("AppleWebKit")!=-1&&M.getStyle(B,"position")=="absolute")){I.x-=J.offsetLeft;I.y-=J.offsetTop}if(B.parentNode){D=B.parentNode}else{D=null}while(D){var F=D.tagName.toUpperCase();if(F==="BODY"||F==="HTML"){break}var L=M.getStyle(D,"display");if(L.search(/^inline|table-row.*$/i)){I.x-=D.scrollLeft;I.y-=D.scrollTop}if(D.parentNode){D=D.parentNode}else{D=null}}}}}if(typeof (G)!="undefined"){G=arguments.callee(G);if(G){I.x-=(G.x||0);I.y-=(G.y||0)}}return I},setElementPosition:function(E,D,B){E=MochiKit.DOM.getElement(E);if(typeof (B)=="undefined"){B="px"}var C={};var A=MochiKit.Base.isUndefinedOrNull;if(!A(D.x)){C.left=D.x+B}if(!A(D.y)){C.top=D.y+B}MochiKit.DOM.updateNodeAttributes(E,{style:C})},makePositioned:function(A){A=MochiKit.DOM.getElement(A);var B=MochiKit.Style.getStyle(A,"position");if(B=="static"||!B){A.style.position="relative";if(/Opera/.test(navigator.userAgent)){A.style.top=0;A.style.left=0}}},undoPositioned:function(A){A=MochiKit.DOM.getElement(A);if(A.style.position=="relative"){A.style.position=A.style.top=A.style.left=A.style.bottom=A.style.right=""}},makeClipping:function(C){C=MochiKit.DOM.getElement(C);var A=C.style;var B={overflow:A.overflow,"overflow-x":A.overflowX,"overflow-y":A.overflowY};if((MochiKit.Style.getStyle(C,"overflow")||"visible")!="hidden"){C.style.overflow="hidden";C.style.overflowX="hidden";C.style.overflowY="hidden"}return B},undoClipping:function(B,A){B=MochiKit.DOM.getElement(B);if(typeof (A)=="string"){B.style.overflow=A}else{if(A!=null){B.style.overflow=A.overflow;B.style.overflowX=A["overflow-x"];B.style.overflowY=A["overflow-y"]}}},getElementDimensions:function(B,A){var N=MochiKit.Style;var C=MochiKit.DOM;if(typeof (B.w)=="number"||typeof (B.h)=="number"){return new N.Dimensions(B.w||0,B.h||0)}B=C.getElement(B);if(!B){return undefined}var K=N.getStyle(B,"display");if(K=="none"||K==""||typeof (K)=="undefined"){var O=B.style;var P=O.visibility;var M=O.position;var L=O.display;O.visibility="hidden";O.position="absolute";O.display=N._getDefaultDisplay(B);var J=B.offsetWidth;var I=B.offsetHeight;O.display=L;O.position=M;O.visibility=P}else{J=B.offsetWidth||0;I=B.offsetHeight||0}if(A){var H="colSpan" in B&&"rowSpan" in B;var G=(H&&B.parentNode&&N.getStyle(B.parentNode,"borderCollapse")=="collapse");if(G){if(/MSIE/.test(navigator.userAgent)){var F=B.previousSibling?0.5:1;var E=B.nextSibling?0.5:1}else{var F=0.5;var E=0.5}}else{var F=1;var E=1}J-=Math.round((parseFloat(N.getStyle(B,"paddingLeft"))||0)+(parseFloat(N.getStyle(B,"paddingRight"))||0)+F*(parseFloat(N.getStyle(B,"borderLeftWidth"))||0)+E*(parseFloat(N.getStyle(B,"borderRightWidth"))||0));if(H){if(/Gecko|Opera/.test(navigator.userAgent)&&!/Konqueror|AppleWebKit|KHTML/.test(navigator.userAgent)){var D=0}else{if(/MSIE/.test(navigator.userAgent)){var D=1}else{var D=G?0.5:1}}}else{var D=1}I-=Math.round((parseFloat(N.getStyle(B,"paddingTop"))||0)+(parseFloat(N.getStyle(B,"paddingBottom"))||0)+D*((parseFloat(N.getStyle(B,"borderTopWidth"))||0)+(parseFloat(N.getStyle(B,"borderBottomWidth"))||0)))}return new N.Dimensions(J,I)},setElementDimensions:function(B,E,D){B=MochiKit.DOM.getElement(B);if(typeof (D)=="undefined"){D="px"}var C={};var A=MochiKit.Base.isUndefinedOrNull;if(!A(E.w)){C.width=E.w+D}if(!A(E.h)){C.height=E.h+D}MochiKit.DOM.updateNodeAttributes(B,{style:C})},_getDefaultDisplay:function(C){var A=MochiKit.Style;var D=MochiKit.DOM;C=D.getElement(C);if(!C){return undefined}var B=C.tagName.toUpperCase();return A._defaultDisplay[B]||"block"},setDisplayForElement:function(D,C){var B=MochiKit.Base.extend(null,arguments,1);var A=MochiKit.DOM.getElement;for(var E=0;E<&%-]/g,"_");var M=G+"_"+C;var l=f.open("",M,"dependent,resizable,height=200");if(!l){alert("Not able to open debugging window due to pop-up blocking.");return undefined}l.document.write('[MochiKit.LoggingPane]');l.document.close();l.document.title+=" "+f.document.title;f=l}var I=f.document;this.doc=I;var L=I.getElementById(G);var K=!!L;if(L&&typeof (L.loggingPane)!="undefined"){L.loggingPane.logger=this.logger;L.loggingPane.buildAndApplyFilter();return L.loggingPane}if(K){var J;while((J=L.firstChild)){L.removeChild(J)}}else{L=I.createElement("div");L.id=G}L.loggingPane=this;var H=I.createElement("input");var F=I.createElement("input");var E=I.createElement("button");var B=I.createElement("button");var A=I.createElement("button");var Z=I.createElement("button");var Y=I.createElement("div");var X=I.createElement("div");var W=G+"_Listener";this.colorTable=m(this.colorTable);var V=[];var U=null;var k=function(n){var o=n.level;if(typeof (o)=="number"){o=MochiKit.Logging.LogLevel[o]}return o};var j=function(n){return n.info.join(" ")};var h=D(function(r){var n=k(r);var q=j(r);var s=this.colorTable[n];var o=I.createElement("span");o.className="MochiKit-LogMessage MochiKit-LogLevel-"+n;o.style.cssText="margin: 0px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; white-space: pre-line; word-wrap: break-word; wrap-option: emergency; color: "+s;o.appendChild(I.createTextNode(n+": "+q));X.appendChild(o);X.appendChild(I.createElement("br"));if(Y.offsetHeight>Y.scrollHeight){Y.scrollTop=0}else{Y.scrollTop=Y.scrollHeight}},this);var P=function(n){V[V.length]=n;h(n)};var O=function(){var o,n;try{o=new RegExp(H.value);n=new RegExp(F.value)}catch(q){logDebug("Error in filter regex: "+q.message);return null}return function(r){return(o.test(k(r))&&n.test(j(r)))}};var g=function(){while(X.firstChild){X.removeChild(X.firstChild)}};var e=function(){V=[];g()};var d=D(function(){if(this.closed){return }this.closed=true;if(MochiKit.LoggingPane._loggingPane==this){MochiKit.LoggingPane._loggingPane=null}this.logger.removeListener(W);try{try{L.loggingPane=null}catch(n){logFatal("Bookmarklet was closed incorrectly.")}if(T){L.parentNode.removeChild(L)}else{this.win.close()}}catch(n){}},this);var c=function(){g();for(var n=0;n0.5},isDark:function(){return(!this.isLight())},toHSLString:function(){var E=this.asHSL();var D=MochiKit.Color.clampColorComponent;var C=this._hslString;if(!C){var B=(D(E.h,360).toFixed(0)+","+D(E.s,100).toPrecision(4)+"%,"+D(E.l,100).toPrecision(4)+"%");var A=E.a;if(A>=1){A=1;C="hsl("+B+")"}else{if(A<=0){A=0}C="hsla("+B+","+A+")"}this._hslString=C}return C},toRGBString:function(){var D=this.rgb;var C=MochiKit.Color.clampColorComponent;var B=this._rgbString;if(!B){var A=(C(D.r,255).toFixed(0)+","+C(D.g,255).toFixed(0)+","+C(D.b,255).toFixed(0));if(D.a!=1){B="rgba("+A+","+D.a+")"}else{B="rgb("+A+")"}this._rgbString=B}return B},asRGB:function(){return MochiKit.Base.clone(this.rgb)},toHexString:function(){var A=MochiKit.Color;var D=this.rgb;var C=MochiKit.Color.clampColorComponent;var B=this._hexString;if(!B){B=("#"+A.toColorPart(C(D.r,255))+A.toColorPart(C(D.g,255))+A.toColorPart(C(D.b,255)));this._hexString=B}return B},asHSV:function(){var A=this.hsv;var B=this.rgb;if(typeof (A)=="undefined"||A===null){A=MochiKit.Color.rgbToHSV(this.rgb);this.hsv=A}return MochiKit.Base.clone(A)},asHSL:function(){var A=this.hsl;var B=this.rgb;if(typeof (A)=="undefined"||A===null){A=MochiKit.Color.rgbToHSL(this.rgb);this.hsl=A}return MochiKit.Base.clone(A)},toString:function(){return this.toRGBString()},repr:function(){var B=this.rgb;var A=[B.r,B.g,B.b,B.a];return this.__class__.NAME+"("+A.join(", ")+")"}};MochiKit.Base.update(MochiKit.Color.Color,{fromRGB:function(F,D,B,C){var A=MochiKit.Color.Color;if(arguments.length==1){var E=F;F=E.r;D=E.g;B=E.b;if(typeof (E.a)=="undefined"){C=undefined}else{C=E.a}}return new A(F,D,B,C)},fromHSL:function(B,E,D,C){var A=MochiKit.Color;return A.Color.fromRGB(A.hslToRGB.apply(A,arguments))},fromHSV:function(B,C,E,D){var A=MochiKit.Color;return A.Color.fromRGB(A.hsvToRGB.apply(A,arguments))},fromName:function(C){var B=MochiKit.Color.Color;if(C.charAt(0)=='"'){C=C.substr(1,C.length-2)}var A=B._namedColors[C.toLowerCase()];if(typeof (A)=="string"){return B.fromHexString(A)}else{if(C=="transparent"){return B.transparentColor()}}return null},fromString:function(C){var B=MochiKit.Color.Color;var A=C.substr(0,3);if(A=="rgb"){return B.fromRGBString(C)}else{if(A=="hsl"){return B.fromHSLString(C)}else{if(C.charAt(0)=="#"){return B.fromHexString(C)}}}return B.fromName(C)},fromHexString:function(A){if(A.charAt(0)=="#"){A=A.substring(1)}var E=[];var B,C;if(A.length==3){for(B=0;B<3;B++){C=A.substr(B,1);E.push(parseInt(C+C,16)/255)}}else{for(B=0;B<6;B+=2){C=A.substr(B,2);E.push(parseInt(C,16)/255)}}var D=MochiKit.Color.Color;return D.fromRGB.apply(D,E)},_fromColorString:function(B,D,I,H){if(H.indexOf(B)===0){H=H.substring(H.indexOf("(",3)+1,H.length-1)}var G=H.split(/\s*,\s*/);var F=[];for(var C=0;C0){return B}}return null},fromBackground:function(B){var A=MochiKit.Color.Color;return A.fromComputedStyle(B,"backgroundColor","background-color")||A.whiteColor()},fromText:function(B){var A=MochiKit.Color.Color;return A.fromComputedStyle(B,"color","color")||A.blackColor()},namedColors:function(){return MochiKit.Base.clone(MochiKit.Color.Color._namedColors)}});MochiKit.Base.update(MochiKit.Color,{clampColorComponent:function(A,B){A*=B;if(A<0){return 0}else{if(A>B){return B}else{return A}}},_hslValue:function(C,B,A){if(A>6){A-=6}else{if(A<0){A+=6}}var D;if(A<1){D=C+(B-C)*A}else{if(A<3){D=B}else{if(A<4){D=C+(B-C)*(4-A)}else{D=C}}}return D},hsvToRGB:function(J,I,G,E){if(arguments.length==1){var H=J;J=H.h;I=H.s;G=H.v;E=H.a}var D;var C;var L;if(I===0){D=G;C=G;L=G}else{var F=Math.floor(J*6);var K=(J*6)-F;var B=G*(1-I);var A=G*(1-(I*K));var M=G*(1-(I*(1-K)));switch(F){case 1:D=A;C=G;L=B;break;case 2:D=B;C=G;L=M;break;case 3:D=B;C=A;L=G;break;case 4:D=M;C=B;L=G;break;case 5:D=G;C=B;L=A;break;case 6:case 0:D=G;C=M;L=B;break}}return{r:D,g:C,b:L,a:E}},hslToRGB:function(G,D,C,B){if(arguments.length==1){var K=G;G=K.h;D=K.s;C=K.l;B=K.a}var E;var A;var I;if(D===0){E=C;A=C;I=C}else{var J;if(C<=0.5){J=C*(1+D)}else{J=C+D-(C*D)}var L=(2*C)-J;var H=MochiKit.Color._hslValue;var F=G*6;E=H(L,J,F+2);A=H(L,J,F);I=H(L,J,F-2)}return{r:E,g:A,b:I,a:B}},rgbToHSV:function(B,A,J,K){if(arguments.length==1){var F=B;B=F.r;A=F.g;J=F.b;K=F.a}var H=Math.max(Math.max(B,A),J);var C=Math.min(Math.min(B,A),J);var D;var I;var G=H;if(C==H){D=0;I=0}else{var E=(H-C);I=E/H;if(B==H){D=(A-J)/E}else{if(A==H){D=2+((J-B)/E)}else{D=4+((B-A)/E)}}D/=6;if(D<0){D+=1}if(D>1){D-=1}}return{h:D,s:I,v:G,a:K}},rgbToHSL:function(A,H,K,C){if(arguments.length==1){var I=A;A=I.r;H=I.g;K=I.b;C=I.a}var J=Math.max(A,Math.max(H,K));var B=Math.min(A,Math.min(H,K));var D;var G;var F=(J+B)/2;var E=J-B;if(E===0){D=0;G=0}else{if(F<=0.5){G=E/(J+B)}else{G=E/(2-J-B)}if(A==J){D=(H-K)/E}else{if(H==J){D=2+((K-A)/E)}else{D=4+((A-H)/E)}}D/=6;if(D<0){D+=1}if(D>1){D-=1}}return{h:D,s:G,l:F,a:C}},toColorPart:function(A){A=Math.round(A);var B=A.toString(16);if(A<16){return"0"+B}return B},__new__:function(){var E=MochiKit.Base;this.Color.fromRGBString=E.bind(this.Color._fromColorString,this.Color,"rgb","fromRGB",[1/255,1/255,1/255,1]);this.Color.fromHSLString=E.bind(this.Color._fromColorString,this.Color,"hsl","fromHSL",[1/360,0.01,0.01,1]);var I=1/3;var G={black:[0,0,0],blue:[0,0,1],brown:[0.6,0.4,0.2],cyan:[0,1,1],darkGray:[I,I,I],gray:[0.5,0.5,0.5],green:[0,1,0],lightGray:[2*I,2*I,2*I],magenta:[1,0,1],orange:[1,0.5,0],purple:[0.5,0,0.5],red:[1,0,0],transparent:[0,0,0,0],white:[1,1,1],yellow:[1,1,0]};var F=function(L,N,M,J,K){var O=this.fromRGB(N,M,J,K);this[L]=function(){return O};return O};for(var H in G){var A=H+"Color";var C=E.concat([F,this.Color,A],G[H]);this.Color[A]=E.bind.apply(null,C)}var D=function(){for(var J=0;J1){var A=MochiKit.DOM.getElement(arguments[0]);var K=arguments[1];var F=arguments[2];var C=arguments[3];for(var E=G.length-1;E>=0;E--){var B=G[E];if(B.source===A&&B.signal===K&&B.objOrFunc===F&&B.funcOrStr===C){J._disconnect(B);if(!J._lock){G.splice(E,1)}else{J._dirty=true}return true}}}else{var H=D.findIdentical(G,I);if(H>=0){J._disconnect(I);if(!J._lock){G.splice(H,1)}else{J._dirty=true}return true}}return false},disconnectAllTo:function(E,D){var I=MochiKit.Signal;var C=I._observers;var B=I._disconnect;var H=I._lock;var G=I._dirty;if(typeof (D)==="undefined"){D=null}for(var A=C.length-1;A>=0;A--){var F=C[A];if(F.objOrFunc===E&&(D===null||F.funcOrStr===D)){B(F);if(H){G=true}else{C.splice(A,1)}}}I._dirty=G},disconnectAll:function(A,L){A=MochiKit.DOM.getElement(A);var B=MochiKit.Base;var F=B.flattenArguments(B.extend(null,arguments,1));var J=MochiKit.Signal;var D=J._disconnect;var I=J._observers;var C,H;var G=J._lock;var E=J._dirty;if(F.length===0){for(C=I.length-1;C>=0;C--){H=I[C];if(H.source===A){D(H);if(!G){I.splice(C,1)}else{E=true}}}}else{var K={};for(C=0;C=0;C--){H=I[C];if(H.source===A&&H.signal in K){D(H);if(!G){I.splice(C,1)}else{E=true}}}}J._dirty=E},signal:function(A,I){var H=MochiKit.Signal;var D=H._observers;A=MochiKit.DOM.getElement(A);var G=MochiKit.Base.extend(null,arguments,2);var C=[];H._lock=true;for(var E=0;E=0;E--){if(!D[E].connected){D.splice(E,1)}}}if(C.length==1){throw C[0]}else{if(C.length>1){var F=new Error("Multiple errors thrown in handling 'sig', see errors property");F.errors=C;throw F}}}});MochiKit.Signal.EXPORT_OK=[];MochiKit.Signal.EXPORT=["connect","disconnect","signal","disconnectAll","disconnectAllTo"];MochiKit.Signal.__new__=function(C){var A=MochiKit.Base;this._document=document;this._window=C;this._lock=false;this._dirty=false;try{this.connect(window,"onunload",this._unloadCache)}catch(B){}this.EXPORT_TAGS={":common":this.EXPORT,":all":A.concat(this.EXPORT,this.EXPORT_OK)};A.nameFunctions(this)};MochiKit.Signal.__new__(this);if(MochiKit.__export__){connect=MochiKit.Signal.connect;disconnect=MochiKit.Signal.disconnect;disconnectAll=MochiKit.Signal.disconnectAll;signal=MochiKit.Signal.signal}MochiKit.Base._exportSymbols(this,MochiKit.Signal);MochiKit.Base._deps("Position",["Base","DOM","Style"]);MochiKit.Position.NAME="MochiKit.Position";MochiKit.Position.VERSION="1.4.2";MochiKit.Position.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"};MochiKit.Position.toString=function(){return this.__repr__()};MochiKit.Position.EXPORT_OK=[];MochiKit.Position.EXPORT=[];MochiKit.Base.update(MochiKit.Position,{includeScrollOffsets:false,prepare:function(){var B=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;var A=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;this.windowOffset=new MochiKit.Style.Coordinates(B,A)},cumulativeOffset:function(C){var B=0;var A=0;do{B+=C.offsetTop||0;A+=C.offsetLeft||0;C=C.offsetParent}while(C);return new MochiKit.Style.Coordinates(A,B)},realOffset:function(C){var B=0;var A=0;do{B+=C.scrollTop||0;A+=C.scrollLeft||0;C=C.parentNode}while(C);return new MochiKit.Style.Coordinates(A,B)},within:function(B,A,C){if(this.includeScrollOffsets){return this.withinIncludingScrolloffsets(B,A,C)}this.xcomp=A;this.ycomp=C;this.offset=this.cumulativeOffset(B);if(B.style.position=="fixed"){this.offset.x+=this.windowOffset.x;this.offset.y+=this.windowOffset.y}return(C>=this.offset.y&&C=this.offset.x&&A=this.offset.y&&this.ycomp=this.offset.x&&this.xcomp"+A.innerHTML+""},_roundTopCorners:function(E,D,C){var A=this._createCorner(C);for(var B=0;B=0;B--){A.appendChild(this._createCornerSlice(D,C,B,"bottom"))}E.style.paddingBottom=0;E.appendChild(A)},_createCorner:function(A){var B=MochiKit.DOM;return B.DIV({style:{backgroundColor:A.toString()}})},_createCornerSlice:function(F,E,G,D){var C=MochiKit.DOM.SPAN();var B=C.style;B.backgroundColor=F.toString();B.display="block";B.height="1px";B.overflow="hidden";B.fontSize="1px";var A=this._borderColor(F,E);if(this.options.border&&G===0){B.borderTopStyle="solid";B.borderTopWidth="1px";B.borderLeftWidth="0px";B.borderRightWidth="0px";B.borderBottomWidth="0px";B.height="0px";B.borderColor=A.toString()}else{if(A){B.borderColor=A.toString();B.borderStyle="solid";B.borderWidth="0px 1px"}}if(!this.options.compact&&(G==(this.options.numSlices-1))){B.height="2px"}this._setMargin(C,G,D);this._setBorder(C,G,D);return C},_setOptions:function(A){this.options={corners:"all",color:"fromElement",bgColor:"fromParent",blend:true,border:false,compact:false,__unstable__wrapElement:false};MochiKit.Base.update(this.options,A);this.options.numSlices=(this.options.compact?2:4)},_whichSideTop:function(){var A=this.options.corners;if(this._hasString(A,"all","top")){return""}var C=(A.indexOf("tl")!=-1);var B=(A.indexOf("tr")!=-1);if(C&&B){return""}if(C){return"left"}if(B){return"right"}return""},_whichSideBottom:function(){var C=this.options.corners;if(this._hasString(C,"all","bottom")){return""}var B=(C.indexOf("bl")!=-1);var A=(C.indexOf("br")!=-1);if(B&&A){return""}if(B){return"left"}if(A){return"right"}return""},_borderColor:function(B,A){if(B=="transparent"){return A}else{if(this.options.border){return this.options.border}else{if(this.options.blend){return A.blendedColor(B)}}}return""},_setMargin:function(B,F,E){var D=this._marginSize(F)+"px";var C=(E=="top"?this._whichSideTop():this._whichSideBottom());var A=B.style;if(C=="left"){A.marginLeft=D;A.marginRight="0px"}else{if(C=="right"){A.marginRight=D;A.marginLeft="0px"}else{A.marginLeft=D;A.marginRight=D}}},_setBorder:function(E,F,B){var A=this._borderSize(F)+"px";var D=(B=="top"?this._whichSideTop():this._whichSideBottom());var C=E.style;if(D=="left"){C.borderLeftWidth=A;C.borderRightWidth="0px"}else{if(D=="right"){C.borderRightWidth=A;C.borderLeftWidth="0px"}else{C.borderLeftWidth=A;C.borderRightWidth=A}}},_marginSize:function(F){if(this.isTransparent){return 0}var E=this.options;if(E.compact&&E.blend){var D=[1,0];return D[F]}else{if(E.compact){var B=[2,1];return B[F]}else{if(E.blend){var C=[3,2,1,0];return C[F]}else{var A=[5,3,2,1];return A[F]}}}},_borderSize:function(C){var B=this.options;var A;if(B.compact&&(B.blend||this.isTransparent)){return 1}else{if(B.compact){A=[1,0]}else{if(B.blend){A=[2,1,1,1]}else{if(B.border){A=[0,2,0,0]}else{if(this.isTransparent){A=[5,3,2,1]}else{return 0}}}}}return A[C]},_hasString:function(B){for(var A=1;A=(A||F)){A=F}},this.effects);C=A||C;break;case"break":E(function(F){F.finalize()},this.effects);break}D.startOn+=C;D.finishOn+=C;if(!D.options.queue.limit||this.effects.length=this.startOn){if(B>=this.finishOn){return this.finalize()}var C=(B-this.startOn)/(this.finishOn-this.startOn);var A=Math.round(C*this.options.fps*this.options.duration);if(A>this.currentFrame){this.render(C);this.currentFrame=A}}},render:function(A){if(this.state=="idle"){this.state="running";this.event("beforeSetup");this.setup();this.event("afterSetup")}if(this.state=="running"){if(this.options.transition){A=this.options.transition(A)}A*=(this.options.to-this.options.from);A+=this.options.from;this.event("beforeUpdate");this.update(A);this.event("afterUpdate")}},cancel:function(){if(!this.options.sync){MochiKit.Visual.Queues.get(typeof (this.options.queue)=="string"?"global":this.options.queue.scope).remove(this)}this.state="finished"},finalize:function(){this.render(1);this.cancel();this.event("beforeFinish");this.finish();this.event("afterFinish")},setup:function(){},finish:function(){},update:function(A){},event:function(A){if(this.options[A+"Internal"]){this.options[A+"Internal"](this)}if(this.options[A]){this.options[A](this)}},repr:function(){return"["+this.__class__.NAME+", options:"+MochiKit.Base.repr(this.options)+"]"}};MochiKit.Visual.Parallel=function(C,B){var A=arguments.callee;if(!(this instanceof A)){return new A(C,B)}this.__init__(C,B)};MochiKit.Visual.Parallel.prototype=new MochiKit.Visual.Base();MochiKit.Base.update(MochiKit.Visual.Parallel.prototype,{__class__:MochiKit.Visual.Parallel,__init__:function(B,A){this.effects=B||[];this.start(A)},update:function(A){MochiKit.Base.map(function(B){B.render(A)},this.effects)},finish:function(){MochiKit.Base.map(function(A){A.finalize()},this.effects)}});MochiKit.Visual.Sequence=function(C,A){var B=arguments.callee;if(!(this instanceof B)){return new B(C,A)}this.__init__(C,A)};MochiKit.Visual.Sequence.prototype=new MochiKit.Visual.Base();MochiKit.Base.update(MochiKit.Visual.Sequence.prototype,{__class__:MochiKit.Visual.Sequence,__init__:function(B,C){var A={transition:MochiKit.Visual.Transitions.linear,duration:0};this.effects=B||[];MochiKit.Base.map(function(D){A.duration+=D.options.duration},this.effects);MochiKit.Base.setdefault(C,A);this.start(C)},update:function(C){var D=C*this.options.duration;for(var B=0;B0){this.fontSize=parseFloat(A);this.fontSizeType=D}},this),["em","px","%"]);this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;if(/^content/.test(this.options.scaleMode)){this.dims=[this.element.scrollHeight,this.element.scrollWidth]}else{if(this.options.scaleMode=="box"){this.dims=[this.element.offsetHeight,this.element.offsetWidth]}else{this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth]}}},update:function(B){var A=(this.options.scaleFrom/100)+(this.factor*B);if(this.options.scaleContent&&this.fontSize){MochiKit.Style.setStyle(this.element,{fontSize:this.fontSize*A+this.fontSizeType})}this.setDimensions(this.dims[0]*A,this.dims[1]*A)},finish:function(){if(this.restoreAfterFinish){MochiKit.Style.setStyle(this.element,this.originalStyle)}},setDimensions:function(E,C){var F={};var B=Math.round;if(/MSIE/.test(navigator.userAgent)){B=Math.ceil}if(this.options.scaleX){F.width=B(C)+"px"}if(this.options.scaleY){F.height=B(E)+"px"}if(this.options.scaleFromCenter){var A=(E-this.dims[0])/2;var D=(C-this.dims[1])/2;if(this.elementPositioning=="absolute"){if(this.options.scaleY){F.top=this.originalTop-A+"px"}if(this.options.scaleX){F.left=this.originalLeft-D+"px"}}else{if(this.options.scaleY){F.top=-A+"px"}if(this.options.scaleX){F.left=-D+"px"}}}MochiKit.Style.setStyle(this.element,F)}});MochiKit.Visual.Highlight=function(C,B){var A=arguments.callee;if(!(this instanceof A)){return new A(C,B)}this.__init__(C,B)};MochiKit.Visual.Highlight.prototype=new MochiKit.Visual.Base();MochiKit.Base.update(MochiKit.Visual.Highlight.prototype,{__class__:MochiKit.Visual.Highlight,__init__:function(B,A){this.element=MochiKit.DOM.getElement(B);A=MochiKit.Base.update({startcolor:"#ffff99"},A);this.start(A)},setup:function(){var A=MochiKit.Base;var B=MochiKit.Style;if(B.getStyle(this.element,"display")=="none"){this.cancel();return }this.oldStyle={backgroundImage:B.getStyle(this.element,"background-image")};B.setStyle(this.element,{backgroundImage:"none"});if(!this.options.endcolor){this.options.endcolor=MochiKit.Color.Color.fromBackground(this.element).toHexString()}if(A.isUndefinedOrNull(this.options.restorecolor)){this.options.restorecolor=B.getStyle(this.element,"background-color")}this._base=A.map(A.bind(function(C){return parseInt(this.options.startcolor.slice(C*2+1,C*2+3),16)},this),[0,1,2]);this._delta=A.map(A.bind(function(C){return parseInt(this.options.endcolor.slice(C*2+1,C*2+3),16)-this._base[C]},this),[0,1,2])},update:function(B){var A="#";MochiKit.Base.map(MochiKit.Base.bind(function(C){A+=MochiKit.Color.toColorPart(Math.round(this._base[C]+this._delta[C]*B))},this),[0,1,2]);MochiKit.Style.setStyle(this.element,{backgroundColor:A})},finish:function(){MochiKit.Style.setStyle(this.element,MochiKit.Base.update(this.oldStyle,{backgroundColor:this.options.restorecolor}))}});MochiKit.Visual.ScrollTo=function(C,B){var A=arguments.callee;if(!(this instanceof A)){return new A(C,B)}this.__init__(C,B)};MochiKit.Visual.ScrollTo.prototype=new MochiKit.Visual.Base();MochiKit.Base.update(MochiKit.Visual.ScrollTo.prototype,{__class__:MochiKit.Visual.ScrollTo,__init__:function(B,A){this.element=MochiKit.DOM.getElement(B);this.start(A)},setup:function(){var B=MochiKit.Position;B.prepare();var C=B.cumulativeOffset(this.element);if(this.options.offset){C.y+=this.options.offset}var A;if(window.innerHeight){A=window.innerHeight-window.height}else{if(document.documentElement&&document.documentElement.clientHeight){A=document.documentElement.clientHeight-document.body.scrollHeight}else{if(document.body){A=document.body.clientHeight-document.body.scrollHeight}}}this.scrollStart=B.windowOffset.y;this.delta=(C.y>A?A:C.y)-this.scrollStart},update:function(A){var B=MochiKit.Position;B.prepare();window.scrollTo(B.windowOffset.x,this.scrollStart+(A*this.delta))}});MochiKit.Visual.CSS_LENGTH=/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;MochiKit.Visual.Morph=function(C,B){var A=arguments.callee;if(!(this instanceof A)){return new A(C,B)}this.__init__(C,B)};MochiKit.Visual.Morph.prototype=new MochiKit.Visual.Base();MochiKit.Base.update(MochiKit.Visual.Morph.prototype,{__class__:MochiKit.Visual.Morph,__init__:function(B,A){this.element=MochiKit.DOM.getElement(B);this.start(A)},setup:function(){var B=MochiKit.Base;var D=this.options.style;this.styleStart={};this.styleEnd={};this.units={};var C,F;for(var E in D){C=D[E];E=B.camelize(E);if(MochiKit.Visual.CSS_LENGTH.test(C)){var A=C.match(/^([\+\-]?[0-9\.]+)(.*)$/);C=parseFloat(A[1]);F=(A.length==3)?A[2]:null;this.styleEnd[E]=C;this.units[E]=F;C=MochiKit.Style.getStyle(this.element,E);A=C.match(/^([\+\-]?[0-9\.]+)(.*)$/);C=parseFloat(A[1]);this.styleStart[E]=C}else{if(/[Cc]olor$/.test(E)){var G=MochiKit.Color.Color;C=G.fromString(C);if(C){this.units[E]="color";this.styleEnd[E]=C.toHexString();C=MochiKit.Style.getStyle(this.element,E);this.styleStart[E]=G.fromString(C).toHexString();this.styleStart[E]=B.map(B.bind(function(H){return parseInt(this.styleStart[E].slice(H*2+1,H*2+3),16)},this),[0,1,2]);this.styleEnd[E]=B.map(B.bind(function(H){return parseInt(this.styleEnd[E].slice(H*2+1,H*2+3),16)},this),[0,1,2])}}else{this.element.style[E]=C}}}},update:function(F){var E;for(var D in this.styleStart){if(this.units[D]=="color"){var A="#";var C=this.styleStart[D];var B=this.styleEnd[D];MochiKit.Base.map(MochiKit.Base.bind(function(G){A+=MochiKit.Color.toColorPart(Math.round(C[G]+(B[G]-C[G])*F))},this),[0,1,2]);this.element.style[D]=A}else{E=this.styleStart[D]+Math.round((this.styleEnd[D]-this.styleStart[D])*F*1000)/1000+this.units[D];this.element.style[D]=E}}}});MochiKit.Visual.fade=function(A,D){var C=MochiKit.Style;var B=C.getStyle(A,"opacity");D=MochiKit.Base.update({from:C.getStyle(A,"opacity")||1,to:0,afterFinishInternal:function(E){if(E.options.to!==0){return }C.hideElement(E.element);C.setStyle(E.element,{opacity:B})}},D);return new MochiKit.Visual.Opacity(A,D)};MochiKit.Visual.appear=function(C,A){var D=MochiKit.Style;var B=MochiKit.Visual;A=MochiKit.Base.update({from:(D.getStyle(C,"display")=="none"?0:D.getStyle(C,"opacity")||0),to:1,afterFinishInternal:function(E){B.forceRerendering(E.element)},beforeSetupInternal:function(E){D.setStyle(E.element,{opacity:E.options.from});D.showElement(E.element)}},A);return new B.Opacity(C,A)};MochiKit.Visual.puff=function(F,E){var D=MochiKit.Style;var A=MochiKit.Visual;F=MochiKit.DOM.getElement(F);var C=MochiKit.Style.getElementDimensions(F,true);var B={position:D.getStyle(F,"position"),top:F.style.top,left:F.style.left,width:F.style.width,height:F.style.height,opacity:D.getStyle(F,"opacity")};E=MochiKit.Base.update({beforeSetupInternal:function(G){MochiKit.Position.absolutize(G.effects[0].element)},afterFinishInternal:function(G){D.hideElement(G.effects[0].element);D.setStyle(G.effects[0].element,B)},scaleContent:true,scaleFromCenter:true},E);return new A.Parallel([new A.Scale(F,200,{sync:true,scaleFromCenter:E.scaleFromCenter,scaleMode:{originalHeight:C.h,originalWidth:C.w},scaleContent:E.scaleContent,restoreAfterFinish:true}),new A.Opacity(F,{sync:true,to:0})],E)};MochiKit.Visual.blindUp=function(E,D){var F=MochiKit.DOM;var C=MochiKit.Style;E=F.getElement(E);var B=C.getElementDimensions(E,true);var A=C.makeClipping(E);D=MochiKit.Base.update({scaleContent:false,scaleX:false,scaleMode:{originalHeight:B.h,originalWidth:B.w},restoreAfterFinish:true,afterFinishInternal:function(G){C.hideElement(G.element);C.undoClipping(G.element,A)}},D);return new MochiKit.Visual.Scale(E,0,D)};MochiKit.Visual.blindDown=function(B,A){var F=MochiKit.DOM;var C=MochiKit.Style;B=F.getElement(B);var E=C.getElementDimensions(B,true);var D;A=MochiKit.Base.update({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:E.h,originalWidth:E.w},restoreAfterFinish:true,afterSetupInternal:function(G){D=C.makeClipping(G.element);C.setStyle(G.element,{height:"0px"});C.showElement(G.element)},afterFinishInternal:function(G){C.undoClipping(G.element,D)}},A);return new MochiKit.Visual.Scale(B,100,A)};MochiKit.Visual.switchOff=function(H,F){var G=MochiKit.DOM;var D=MochiKit.Style;H=G.getElement(H);var C=D.getElementDimensions(H,true);var E=D.getStyle(H,"opacity");var B;F=MochiKit.Base.update({duration:0.7,restoreAfterFinish:true,beforeSetupInternal:function(I){D.makePositioned(H);B=D.makeClipping(H)},afterFinishInternal:function(I){D.hideElement(H);D.undoClipping(H,B);D.undoPositioned(H);D.setStyle(H,{opacity:E})}},F);var A=MochiKit.Visual;return new A.Sequence([new A.appear(H,{sync:true,duration:0.57*F.duration,from:0,transition:A.Transitions.flicker}),new A.Scale(H,1,{sync:true,duration:0.43*F.duration,scaleFromCenter:true,scaleX:false,scaleMode:{originalHeight:C.h,originalWidth:C.w},scaleContent:false,restoreAfterFinish:true})],F)};MochiKit.Visual.dropOut=function(B,A){var F=MochiKit.DOM;var D=MochiKit.Style;B=F.getElement(B);var E={top:D.getStyle(B,"top"),left:D.getStyle(B,"left"),opacity:D.getStyle(B,"opacity")};A=MochiKit.Base.update({duration:0.5,distance:100,beforeSetupInternal:function(G){D.makePositioned(G.effects[0].element)},afterFinishInternal:function(G){D.hideElement(G.effects[0].element);D.undoPositioned(G.effects[0].element);D.setStyle(G.effects[0].element,E)}},A);var C=MochiKit.Visual;return new C.Parallel([new C.Move(B,{x:0,y:A.distance,sync:true}),new C.Opacity(B,{sync:true,to:0})],A)};MochiKit.Visual.shake=function(F,D){var E=MochiKit.DOM;var B=MochiKit.Visual;var C=MochiKit.Style;F=E.getElement(F);var A={top:C.getStyle(F,"top"),left:C.getStyle(F,"left")};D=MochiKit.Base.update({duration:0.5,afterFinishInternal:function(G){C.undoPositioned(F);C.setStyle(F,A)}},D);return new B.Sequence([new B.Move(F,{sync:true,duration:0.1*D.duration,x:20,y:0}),new B.Move(F,{sync:true,duration:0.2*D.duration,x:-40,y:0}),new B.Move(F,{sync:true,duration:0.2*D.duration,x:40,y:0}),new B.Move(F,{sync:true,duration:0.2*D.duration,x:-40,y:0}),new B.Move(F,{sync:true,duration:0.2*D.duration,x:40,y:0}),new B.Move(F,{sync:true,duration:0.1*D.duration,x:-20,y:0})],D)};MochiKit.Visual.slideDown=function(B,H){var F=MochiKit.DOM;var A=MochiKit.Base;var C=MochiKit.Style;B=F.getElement(B);if(!B.firstChild){throw new Error("MochiKit.Visual.slideDown must be used on a element with a child")}F.removeEmptyTextNodes(B);var D=C.getStyle(B.firstChild,"bottom")||0;var G=C.getElementDimensions(B,true);var E;H=A.update({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:G.h,originalWidth:G.w},restoreAfterFinish:true,afterSetupInternal:function(I){C.makePositioned(I.element);C.makePositioned(I.element.firstChild);if(/Opera/.test(navigator.userAgent)){C.setStyle(I.element,{top:""})}E=C.makeClipping(I.element);C.setStyle(I.element,{height:"0px"});C.showElement(I.element)},afterUpdateInternal:function(J){var I=C.getElementDimensions(J.element,true);C.setStyle(J.element.firstChild,{bottom:(J.dims[0]-I.h)+"px"})},afterFinishInternal:function(I){C.undoClipping(I.element,E);if(/MSIE/.test(navigator.userAgent)){C.undoPositioned(I.element);C.undoPositioned(I.element.firstChild)}else{C.undoPositioned(I.element.firstChild);C.undoPositioned(I.element)}C.setStyle(I.element.firstChild,{bottom:D})}},H);return new MochiKit.Visual.Scale(B,100,H)};MochiKit.Visual.slideUp=function(F,E){var G=MochiKit.DOM;var B=MochiKit.Base;var D=MochiKit.Style;F=G.getElement(F);if(!F.firstChild){throw new Error("MochiKit.Visual.slideUp must be used on a element with a child")}G.removeEmptyTextNodes(F);var C=D.getStyle(F.firstChild,"bottom");var A=D.getElementDimensions(F,true);var H;E=B.update({scaleContent:false,scaleX:false,scaleMode:{originalHeight:A.h,originalWidth:A.w},scaleFrom:100,restoreAfterFinish:true,beforeStartInternal:function(I){D.makePositioned(I.element);D.makePositioned(I.element.firstChild);if(/Opera/.test(navigator.userAgent)){D.setStyle(I.element,{top:""})}H=D.makeClipping(I.element);D.showElement(I.element)},afterUpdateInternal:function(J){var I=D.getElementDimensions(J.element,true);D.setStyle(J.element.firstChild,{bottom:(J.dims[0]-I.h)+"px"})},afterFinishInternal:function(I){D.hideElement(I.element);D.undoClipping(I.element,H);D.undoPositioned(I.element.firstChild);D.undoPositioned(I.element);D.setStyle(I.element.firstChild,{bottom:C})}},E);return new MochiKit.Visual.Scale(F,0,E)};MochiKit.Visual.squish=function(G,F){var E=MochiKit.DOM;var A=MochiKit.Base;var B=MochiKit.Style;var D=B.getElementDimensions(G,true);var C;F=A.update({restoreAfterFinish:true,scaleMode:{originalHeight:D.w,originalWidth:D.h},beforeSetupInternal:function(H){C=B.makeClipping(H.element)},afterFinishInternal:function(H){B.hideElement(H.element);B.undoClipping(H.element,C)}},F);return new MochiKit.Visual.Scale(G,/Opera/.test(navigator.userAgent)?1:0,F)};MochiKit.Visual.grow=function(F,E){var I=MochiKit.DOM;var K=MochiKit.Visual;var L=MochiKit.Style;F=I.getElement(F);E=MochiKit.Base.update({direction:"center",moveTransition:K.Transitions.sinoidal,scaleTransition:K.Transitions.sinoidal,opacityTransition:K.Transitions.full,scaleContent:true,scaleFromCenter:false},E);var H={top:F.style.top,left:F.style.left,height:F.style.height,width:F.style.width,opacity:L.getStyle(F,"opacity")};var J=L.getElementDimensions(F,true);var G,D;var C,B;switch(E.direction){case"top-left":G=D=C=B=0;break;case"top-right":G=J.w;D=B=0;C=-J.w;break;case"bottom-left":G=C=0;D=J.h;B=-J.h;break;case"bottom-right":G=J.w;D=J.h;C=-J.w;B=-J.h;break;case"center":G=J.w/2;D=J.h/2;C=-J.w/2;B=-J.h/2;break}var A=MochiKit.Base.update({beforeSetupInternal:function(M){L.setStyle(M.effects[0].element,{height:"0px"});L.showElement(M.effects[0].element)},afterFinishInternal:function(M){L.undoClipping(M.effects[0].element);L.undoPositioned(M.effects[0].element);L.setStyle(M.effects[0].element,H)}},E);return new K.Move(F,{x:G,y:D,duration:0.01,beforeSetupInternal:function(M){L.hideElement(M.element);L.makeClipping(M.element);L.makePositioned(M.element)},afterFinishInternal:function(M){new K.Parallel([new K.Opacity(M.element,{sync:true,to:1,from:0,transition:E.opacityTransition}),new K.Move(M.element,{x:C,y:B,sync:true,transition:E.moveTransition}),new K.Scale(M.element,100,{scaleMode:{originalHeight:J.h,originalWidth:J.w},sync:true,scaleFrom:/Opera/.test(navigator.userAgent)?1:0,transition:E.scaleTransition,scaleContent:E.scaleContent,scaleFromCenter:E.scaleFromCenter,restoreAfterFinish:true})],A)}})};MochiKit.Visual.shrink=function(D,C){var G=MochiKit.DOM;var I=MochiKit.Visual;var K=MochiKit.Style;D=G.getElement(D);C=MochiKit.Base.update({direction:"center",moveTransition:I.Transitions.sinoidal,scaleTransition:I.Transitions.sinoidal,opacityTransition:I.Transitions.none,scaleContent:true,scaleFromCenter:false},C);var F={top:D.style.top,left:D.style.left,height:D.style.height,width:D.style.width,opacity:K.getStyle(D,"opacity")};var H=K.getElementDimensions(D,true);var E,B;switch(C.direction){case"top-left":E=B=0;break;case"top-right":E=H.w;B=0;break;case"bottom-left":E=0;B=H.h;break;case"bottom-right":E=H.w;B=H.h;break;case"center":E=H.w/2;B=H.h/2;break}var A;var J=MochiKit.Base.update({beforeStartInternal:function(L){K.makePositioned(L.effects[0].element);A=K.makeClipping(L.effects[0].element)},afterFinishInternal:function(L){K.hideElement(L.effects[0].element);K.undoClipping(L.effects[0].element,A);K.undoPositioned(L.effects[0].element);K.setStyle(L.effects[0].element,F)}},C);return new I.Parallel([new I.Opacity(D,{sync:true,to:0,from:1,transition:C.opacityTransition}),new I.Scale(D,/Opera/.test(navigator.userAgent)?1:0,{scaleMode:{originalHeight:H.h,originalWidth:H.w},sync:true,transition:C.scaleTransition,scaleContent:C.scaleContent,scaleFromCenter:C.scaleFromCenter,restoreAfterFinish:true}),new I.Move(D,{x:E,y:B,sync:true,transition:C.moveTransition})],J)};MochiKit.Visual.pulsate=function(G,F){var E=MochiKit.DOM;var B=MochiKit.Visual;var A=MochiKit.Base;var D=MochiKit.Style.getStyle(G,"opacity");F=A.update({duration:3,from:0,afterFinishInternal:function(H){MochiKit.Style.setStyle(H.element,{opacity:D})}},F);var C=F.transition||B.Transitions.sinoidal;F.transition=function(H){return C(1-B.Transitions.pulse(H,F.pulses))};return new B.Opacity(G,F)};MochiKit.Visual.fold=function(G,F){var H=MochiKit.DOM;var C=MochiKit.Visual;var E=MochiKit.Style;G=H.getElement(G);var D=E.getElementDimensions(G,true);var B={top:G.style.top,left:G.style.left,width:G.style.width,height:G.style.height};var A=E.makeClipping(G);F=MochiKit.Base.update({scaleContent:false,scaleX:false,scaleMode:{originalHeight:D.h,originalWidth:D.w},afterFinishInternal:function(I){new C.Scale(G,1,{scaleContent:false,scaleY:false,scaleMode:{originalHeight:D.h,originalWidth:D.w},afterFinishInternal:function(J){E.hideElement(J.element);E.undoClipping(J.element,A);E.setStyle(J.element,B)}})}},F);return new C.Scale(G,5,F)};MochiKit.Visual.Color=MochiKit.Color.Color;MochiKit.Visual.getElementsComputedStyle=MochiKit.DOM.computedStyle;MochiKit.Visual.__new__=function(){var A=MochiKit.Base;A.nameFunctions(this);this.EXPORT_TAGS={":common":this.EXPORT,":all":A.concat(this.EXPORT,this.EXPORT_OK)}};MochiKit.Visual.EXPORT=["roundElement","roundClass","tagifyText","multiple","toggle","Parallel","Sequence","Opacity","Move","Scale","Highlight","ScrollTo","Morph","fade","appear","puff","blindUp","blindDown","switchOff","dropOut","shake","slideDown","slideUp","squish","grow","shrink","pulsate","fold"];MochiKit.Visual.EXPORT_OK=["Base","PAIRS"];MochiKit.Visual.__new__();MochiKit.Base._exportSymbols(this,MochiKit.Visual);MochiKit.Base._deps("DragAndDrop",["Base","Iter","DOM","Signal","Visual","Position"]);MochiKit.DragAndDrop.NAME="MochiKit.DragAndDrop";MochiKit.DragAndDrop.VERSION="1.4.2";MochiKit.DragAndDrop.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"};MochiKit.DragAndDrop.toString=function(){return this.__repr__()};MochiKit.DragAndDrop.EXPORT=["Droppable","Draggable"];MochiKit.DragAndDrop.EXPORT_OK=["Droppables","Draggables"];MochiKit.DragAndDrop.Droppables={drops:[],remove:function(A){this.drops=MochiKit.Base.filter(function(B){return B.element!=MochiKit.DOM.getElement(A)},this.drops)},register:function(A){this.drops.push(A)},unregister:function(A){this.drops=MochiKit.Base.filter(function(B){return B!=A},this.drops)},prepare:function(A){MochiKit.Base.map(function(B){if(B.isAccepted(A)){if(B.options.activeclass){MochiKit.DOM.addElementClass(B.element,B.options.activeclass)}B.options.onactive(B.element,A)}},this.drops)},findDeepestChild:function(A){deepest=A[0];for(i=1;i0){drop=this.findDeepestChild(B);MochiKit.Position.within(drop.element,C.page.x,C.page.y);drop.options.onhover(A,drop.element,MochiKit.Position.overlap(drop.options.overlap,drop.element));drop.activate()}},fire:function(B,A){if(!this.last_active){return }MochiKit.Position.prepare();if(this.last_active.isAffected(B.mouse(),A)){this.last_active.options.ondrop(A,this.last_active.element,B)}},reset:function(A){MochiKit.Base.map(function(B){if(B.options.activeclass){MochiKit.DOM.removeElementClass(B.element,B.options.activeclass)}B.options.ondesactive(B.element,A)},this.drops);if(this.last_active){this.last_active.deactivate()}}};MochiKit.DragAndDrop.Droppable=function(C,B){var A=arguments.callee;if(!(this instanceof A)){return new A(C,B)}this.__init__(C,B)};MochiKit.DragAndDrop.Droppable.prototype={__class__:MochiKit.DragAndDrop.Droppable,__init__:function(C,B){var D=MochiKit.DOM;var A=MochiKit.Base;this.element=D.getElement(C);this.options=A.update({greedy:true,hoverclass:null,activeclass:null,hoverfunc:A.noop,accept:null,onactive:A.noop,ondesactive:A.noop,onhover:A.noop,ondrop:A.noop,containment:[],tree:false},B);this.options._containers=[];A.map(MochiKit.Base.bind(function(E){this.options._containers.push(D.getElement(E))},this),this.options.containment);MochiKit.Style.makePositioned(this.element);MochiKit.DragAndDrop.Droppables.register(this)},isContained:function(B){if(this.options._containers.length){var A;if(this.options.tree){A=B.treeNode}else{A=B.parentNode}return MochiKit.Iter.some(this.options._containers,function(C){return A==C})}else{return true}},isAccepted:function(A){return((!this.options.accept)||MochiKit.Iter.some(this.options.accept,function(B){return MochiKit.DOM.hasElementClass(A,B)}))},isAffected:function(B,A){return((this.element!=A)&&this.isContained(A)&&this.isAccepted(A)&&MochiKit.Position.within(this.element,B.page.x,B.page.y))},deactivate:function(){if(this.options.hoverclass){MochiKit.DOM.removeElementClass(this.element,this.options.hoverclass)}this.options.hoverfunc(this.element,false);MochiKit.DragAndDrop.Droppables.last_active=null},activate:function(){if(this.options.hoverclass){MochiKit.DOM.addElementClass(this.element,this.options.hoverclass)}this.options.hoverfunc(this.element,true);MochiKit.DragAndDrop.Droppables.last_active=this},destroy:function(){MochiKit.DragAndDrop.Droppables.unregister(this)},repr:function(){return"["+this.__class__.NAME+", options:"+MochiKit.Base.repr(this.options)+"]"}};MochiKit.DragAndDrop.Draggables={drags:[],register:function(A){if(this.drags.length===0){var B=MochiKit.Signal.connect;this.eventMouseUp=B(document,"onmouseup",this,this.endDrag);this.eventMouseMove=B(document,"onmousemove",this,this.updateDrag);this.eventKeypress=B(document,"onkeypress",this,this.keyPress)}this.drags.push(A)},unregister:function(A){this.drags=MochiKit.Base.filter(function(C){return C!=A},this.drags);if(this.drags.length===0){var B=MochiKit.Signal.disconnect;B(this.eventMouseUp);B(this.eventMouseMove);B(this.eventKeypress)}},activate:function(A){window.focus();this.activeDraggable=A},deactivate:function(){this.activeDraggable=null},updateDrag:function(B){if(!this.activeDraggable){return }var A=B.mouse();if(this._lastPointer&&(MochiKit.Base.repr(this._lastPointer.page)==MochiKit.Base.repr(A.page))){return }this._lastPointer=A;this.activeDraggable.updateDrag(B,A)},endDrag:function(A){if(!this.activeDraggable){return }this._lastPointer=null;this.activeDraggable.endDrag(A);this.activeDraggable=null},keyPress:function(A){if(this.activeDraggable){this.activeDraggable.keyPress(A)}},notify:function(B,C,A){MochiKit.Signal.signal(this,B,C,A)}};MochiKit.DragAndDrop.Draggable=function(C,B){var A=arguments.callee;if(!(this instanceof A)){return new A(C,B)}this.__init__(C,B)};MochiKit.DragAndDrop.Draggable.prototype={__class__:MochiKit.DragAndDrop.Draggable,__init__:function(D,C){var B=MochiKit.Visual;var A=MochiKit.Base;C=A.update({handle:false,starteffect:function(F){this._savedOpacity=MochiKit.Style.getStyle(F,"opacity")||1;new B.Opacity(F,{duration:0.2,from:this._savedOpacity,to:0.7})},reverteffect:function(H,G,F){var I=Math.sqrt(Math.abs(G^2)+Math.abs(F^2))*0.02;return new B.Move(H,{x:-F,y:-G,duration:I})},endeffect:function(F){new B.Opacity(F,{duration:0.2,from:0.7,to:this._savedOpacity})},onchange:A.noop,zindex:1000,revert:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,snap:false},C);var E=MochiKit.DOM;this.element=E.getElement(D);if(C.handle&&(typeof (C.handle)=="string")){this.handle=E.getFirstElementByTagAndClassName(null,C.handle,this.element)}if(!this.handle){this.handle=E.getElement(C.handle)}if(!this.handle){this.handle=this.element}if(C.scroll&&!C.scroll.scrollTo&&!C.scroll.outerHTML){C.scroll=E.getElement(C.scroll);this._isScrollChild=MochiKit.DOM.isChildNode(this.element,C.scroll)}MochiKit.Style.makePositioned(this.element);this.delta=this.currentDelta();this.options=C;this.dragging=false;this.eventMouseDown=MochiKit.Signal.connect(this.handle,"onmousedown",this,this.initDrag);MochiKit.DragAndDrop.Draggables.register(this)},destroy:function(){MochiKit.Signal.disconnect(this.eventMouseDown);MochiKit.DragAndDrop.Draggables.unregister(this)},currentDelta:function(){var A=MochiKit.Style.getStyle;return[parseInt(A(this.element,"left")||"0"),parseInt(A(this.element,"top")||"0")]},initDrag:function(E){if(!E.mouse().button.left){return }var C=E.target();var B=(C.tagName||"").toUpperCase();if(B==="INPUT"||B==="SELECT"||B==="OPTION"||B==="BUTTON"||B==="TEXTAREA"){return }if(this._revert){this._revert.cancel();this._revert=null}var A=E.mouse();var D=MochiKit.Position.cumulativeOffset(this.element);this.offset=[A.page.x-D.x,A.page.y-D.y];MochiKit.DragAndDrop.Draggables.activate(this);E.stop()},startDrag:function(B){this.dragging=true;if(this.options.selectclass){MochiKit.DOM.addElementClass(this.element,this.options.selectclass)}if(this.options.zindex){this.originalZ=parseInt(MochiKit.Style.getStyle(this.element,"z-index")||"0");this.element.style.zIndex=this.options.zindex}if(this.options.ghosting){this._clone=this.element.cloneNode(true);this.ghostPosition=MochiKit.Position.absolutize(this.element);this.element.parentNode.insertBefore(this._clone,this.element)}if(this.options.scroll){if(this.options.scroll==window){var A=this._getWindowScroll(this.options.scroll);this.originalScrollLeft=A.left;this.originalScrollTop=A.top}else{this.originalScrollLeft=this.options.scroll.scrollLeft;this.originalScrollTop=this.options.scroll.scrollTop}}MochiKit.DragAndDrop.Droppables.prepare(this.element);MochiKit.DragAndDrop.Draggables.notify("start",this,B);if(this.options.starteffect){this.options.starteffect(this.element)}},updateDrag:function(C,A){if(!this.dragging){this.startDrag(C)}MochiKit.Position.prepare();MochiKit.DragAndDrop.Droppables.show(A,this.element);MochiKit.DragAndDrop.Draggables.notify("drag",this,C);this.draw(A);this.options.onchange(this);if(this.options.scroll){this.stopScrolling();var F,E;if(this.options.scroll==window){var D=this._getWindowScroll(this.options.scroll);F=new MochiKit.Style.Coordinates(D.left,D.top);E=new MochiKit.Style.Coordinates(D.left+D.width,D.top+D.height)}else{F=MochiKit.Position.page(this.options.scroll);F.x+=this.options.scroll.scrollLeft;F.y+=this.options.scroll.scrollTop;F.x+=(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0);F.y+=(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0);E=new MochiKit.Style.Coordinates(F.x+this.options.scroll.offsetWidth,F.y+this.options.scroll.offsetHeight)}var B=[0,0];if(A.page.x>(E.x-this.options.scrollSensitivity)){B[0]=A.page.x-(E.x-this.options.scrollSensitivity)}else{if(A.page.x<(F.x+this.options.scrollSensitivity)){B[0]=A.page.x-(F.x+this.options.scrollSensitivity)}}if(A.page.y>(E.y-this.options.scrollSensitivity)){B[1]=A.page.y-(E.y-this.options.scrollSensitivity)}else{if(A.page.y<(F.y+this.options.scrollSensitivity)){B[1]=A.page.y-(F.y+this.options.scrollSensitivity)}}this.startScrolling(B)}if(/AppleWebKit/.test(navigator.appVersion)){window.scrollBy(0,0)}C.stop()},finishDrag:function(C,A){var D=MochiKit.DragAndDrop;this.dragging=false;if(this.options.selectclass){MochiKit.DOM.removeElementClass(this.element,this.options.selectclass)}if(this.options.ghosting){MochiKit.Position.relativize(this.element,this.ghostPosition);MochiKit.DOM.removeElement(this._clone);this._clone=null}if(A){D.Droppables.fire(C,this.element)}D.Draggables.notify("end",this,C);var B=this.options.revert;if(B&&typeof (B)=="function"){B=B(this.element)}var E=this.currentDelta();if(B&&this.options.reverteffect){this._revert=this.options.reverteffect(this.element,E[1]-this.delta[1],E[0]-this.delta[0])}else{this.delta=E}if(this.options.zindex){this.element.style.zIndex=this.originalZ}if(this.options.endeffect){this.options.endeffect(this.element)}D.Draggables.deactivate();D.Droppables.reset(this.element)},keyPress:function(A){if(A.key().string!="KEY_ESCAPE"){return }this.finishDrag(A,false);A.stop()},endDrag:function(A){if(!this.dragging){return }this.stopScrolling();this.finishDrag(A,true);A.stop()},draw:function(E){var F=MochiKit.Position.cumulativeOffset(this.element);var D=this.currentDelta();F.x-=D[0];F.y-=D[1];if(this.options.scroll&&(this.options.scroll!=window&&this._isScrollChild)){F.x-=this.options.scroll.scrollLeft-this.originalScrollLeft;F.y-=this.options.scroll.scrollTop-this.originalScrollTop}var C=[E.page.x-F.x-this.offset[0],E.page.y-F.y-this.offset[1]];if(this.options.snap){if(typeof (this.options.snap)=="function"){C=this.options.snap(C[0],C[1])}else{if(this.options.snap instanceof Array){var A=-1;C=MochiKit.Base.map(MochiKit.Base.bind(function(G){A+=1;return Math.round(G/this.options.snap[A])*this.options.snap[A]},this),C)}else{C=MochiKit.Base.map(MochiKit.Base.bind(function(G){return Math.round(G/this.options.snap)*this.options.snap},this),C)}}}var B=this.element.style;if((!this.options.constraint)||(this.options.constraint=="horizontal")){B.left=C[0]+"px"}if((!this.options.constraint)||(this.options.constraint=="vertical")){B.top=C[1]+"px"}if(B.visibility=="hidden"){B.visibility=""}},stopScrolling:function(){if(this.scrollInterval){clearInterval(this.scrollInterval);this.scrollInterval=null;MochiKit.DragAndDrop.Draggables._lastScrollPointer=null}},startScrolling:function(A){if(!A[0]&&!A[1]){return }this.scrollSpeed=[A[0]*this.options.scrollSpeed,A[1]*this.options.scrollSpeed];this.lastScrolled=new Date();this.scrollInterval=setInterval(MochiKit.Base.bind(this.scroll,this),10)},scroll:function(){var D=new Date();var B=D-this.lastScrolled;this.lastScrolled=D;if(this.options.scroll==window){var C=this._getWindowScroll(this.options.scroll);if(this.scrollSpeed[0]||this.scrollSpeed[1]){var A=B/1000;this.options.scroll.scrollTo(C.left+A*this.scrollSpeed[0],C.top+A*this.scrollSpeed[1])}}else{this.options.scroll.scrollLeft+=this.scrollSpeed[0]*B/1000;this.options.scroll.scrollTop+=this.scrollSpeed[1]*B/1000}var E=MochiKit.DragAndDrop;MochiKit.Position.prepare();E.Droppables.show(E.Draggables._lastPointer,this.element);E.Draggables.notify("drag",this);if(this._isScrollChild){E.Draggables._lastScrollPointer=E.Draggables._lastScrollPointer||E.Draggables._lastPointer;E.Draggables._lastScrollPointer.x+=this.scrollSpeed[0]*B/1000;E.Draggables._lastScrollPointer.y+=this.scrollSpeed[1]*B/1000;if(E.Draggables._lastScrollPointer.x<0){E.Draggables._lastScrollPointer.x=0}if(E.Draggables._lastScrollPointer.y<0){E.Draggables._lastScrollPointer.y=0}this.draw(E.Draggables._lastScrollPointer)}this.options.onchange(this)},_getWindowScroll:function(D){var B,A,C;MochiKit.DOM.withWindow(D,function(){B=MochiKit.Style.getViewportPosition(D.document)});if(D.innerWidth){A=D.innerWidth;C=D.innerHeight}else{if(D.document.documentElement&&D.document.documentElement.clientWidth){A=D.document.documentElement.clientWidth;C=D.document.documentElement.clientHeight}else{A=D.document.body.offsetWidth;C=D.document.body.offsetHeight}}return{top:B.y,left:B.x,width:A,height:C}},repr:function(){return"["+this.__class__.NAME+", options:"+MochiKit.Base.repr(this.options)+"]"}};MochiKit.DragAndDrop.__new__=function(){MochiKit.Base.nameFunctions(this);this.EXPORT_TAGS={":common":this.EXPORT,":all":MochiKit.Base.concat(this.EXPORT,this.EXPORT_OK)}};MochiKit.DragAndDrop.__new__();MochiKit.Base._exportSymbols(this,MochiKit.DragAndDrop);MochiKit.Base._deps("Sortable",["Base","Iter","DOM","Position","DragAndDrop"]);MochiKit.Sortable.NAME="MochiKit.Sortable";MochiKit.Sortable.VERSION="1.4.2";MochiKit.Sortable.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"};MochiKit.Sortable.toString=function(){return this.__repr__()};MochiKit.Sortable.EXPORT=[];MochiKit.Sortable.EXPORT_OK=[];MochiKit.Base.update(MochiKit.Sortable,{sortables:{},_findRootElement:function(A){while(A.tagName.toUpperCase()!="BODY"){if(A.id&&MochiKit.Sortable.sortables[A.id]){return A}A=A.parentNode}},_createElementId:function(A){if(A.id==null||A.id==""){var B=MochiKit.DOM;var D;var C=1;while(B.getElement(D="sortable"+C)!=null){C+=1}B.setNodeAttribute(A,"id",D)}},options:function(A){A=MochiKit.Sortable._findRootElement(MochiKit.DOM.getElement(A));if(!A){return }return MochiKit.Sortable.sortables[A.id]},destroy:function(C){var B=MochiKit.Sortable.options(C);var A=MochiKit.Base;var D=MochiKit.DragAndDrop;if(B){MochiKit.Signal.disconnect(B.startHandle);MochiKit.Signal.disconnect(B.endHandle);A.map(function(E){D.Droppables.remove(E)},B.droppables);A.map(function(E){E.destroy()},B.draggables);delete MochiKit.Sortable.sortables[B.element.id]}},create:function(D,C){D=MochiKit.DOM.getElement(D);var B=MochiKit.Sortable;B._createElementId(D);C=MochiKit.Base.update({element:D,tag:"li",dropOnEmpty:false,tree:false,treeTag:"ul",overlap:"vertical",constraint:"vertical",containment:[D],handle:false,only:false,hoverclass:null,ghosting:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,format:/^[^_]*_(.*)$/,onChange:MochiKit.Base.noop,onUpdate:MochiKit.Base.noop,accept:null},C);B.destroy(D);var A={revert:true,ghosting:C.ghosting,scroll:C.scroll,scrollSensitivity:C.scrollSensitivity,scrollSpeed:C.scrollSpeed,constraint:C.constraint,handle:C.handle};if(C.starteffect){A.starteffect=C.starteffect}if(C.reverteffect){A.reverteffect=C.reverteffect}else{if(C.ghosting){A.reverteffect=function(G){G.style.top=0;G.style.left=0}}}if(C.endeffect){A.endeffect=C.endeffect}if(C.zindex){A.zindex=C.zindex}var F={overlap:C.overlap,containment:C.containment,hoverclass:C.hoverclass,onhover:B.onHover,tree:C.tree,accept:C.accept};var E={onhover:B.onEmptyHover,overlap:C.overlap,containment:C.containment,hoverclass:C.hoverclass,accept:C.accept};MochiKit.DOM.removeEmptyTextNodes(D);C.draggables=[];C.droppables=[];if(C.dropOnEmpty||C.tree){new MochiKit.DragAndDrop.Droppable(D,E);C.droppables.push(D)}MochiKit.Base.map(function(H){var G=C.handle?MochiKit.DOM.getFirstElementByTagAndClassName(null,C.handle,H):H;C.draggables.push(new MochiKit.DragAndDrop.Draggable(H,MochiKit.Base.update(A,{handle:G})));new MochiKit.DragAndDrop.Droppable(H,F);if(C.tree){H.treeNode=D}C.droppables.push(H)},(B.findElements(D,C)||[]));if(C.tree){MochiKit.Base.map(function(G){new MochiKit.DragAndDrop.Droppable(G,E);G.treeNode=D;C.droppables.push(G)},(B.findTreeElements(D,C)||[]))}B.sortables[D.id]=C;C.lastValue=B.serialize(D);C.startHandle=MochiKit.Signal.connect(MochiKit.DragAndDrop.Draggables,"start",MochiKit.Base.partial(B.onStart,D));C.endHandle=MochiKit.Signal.connect(MochiKit.DragAndDrop.Draggables,"end",MochiKit.Base.partial(B.onEnd,D))},onStart:function(D,C){var A=MochiKit.Sortable;var B=A.options(D);B.lastValue=A.serialize(B.element)},onEnd:function(D,C){var A=MochiKit.Sortable;A.unmark();var B=A.options(D);if(B.lastValue!=A.serialize(B.element)){B.onUpdate(B.element)}},findElements:function(B,A){return MochiKit.Sortable.findChildren(B,A.only,A.tree,A.tag)},findTreeElements:function(B,A){return MochiKit.Sortable.findChildren(B,A.only,A.tree?true:false,A.treeTag)},findChildren:function(A,E,D,C){if(!A.hasChildNodes()){return null}C=C.toUpperCase();if(E){E=MochiKit.Base.flattenArray([E])}var B=[];MochiKit.Base.map(function(G){if(G.tagName&&G.tagName.toUpperCase()==C&&(!E||MochiKit.Iter.some(E,function(H){return MochiKit.DOM.hasElementClass(G,H)}))){B.push(G)}if(D){var F=MochiKit.Sortable.findChildren(G,E,D,C);if(F&&F.length>0){B=B.concat(F)}}},A.childNodes);return B},onHover:function(F,E,D){if(MochiKit.DOM.isChildNode(E,F)){return }var A=MochiKit.Sortable;if(D>0.33&&D<0.66&&A.options(E).tree){return }else{if(D>0.5){A.mark(E,"before");if(E.previousSibling!=F){var C=F.parentNode;F.style.visibility="hidden";E.parentNode.insertBefore(F,E);if(E.parentNode!=C){A.options(C).onChange(F)}A.options(E.parentNode).onChange(F)}}else{A.mark(E,"after");var B=E.nextSibling||null;if(B!=F){var C=F.parentNode;F.style.visibility="hidden";E.parentNode.insertBefore(F,B);if(E.parentNode!=C){A.options(C).onChange(F)}A.options(E.parentNode).onChange(F)}}}},_offsetSize:function(A,B){if(B=="vertical"||B=="height"){return A.offsetHeight}else{return A.offsetWidth}},onEmptyHover:function(C,I,H){var G=C.parentNode;var J=MochiKit.Sortable;var F=J.options(I);if(!MochiKit.DOM.isChildNode(I,C)){var E;var D=J.findElements(I,{tag:F.tag,only:F.only});var B=null;if(D){var A=J._offsetSize(I,F.overlap)*(1-H);for(E=0;E=0){A-=J._offsetSize(D[E],F.overlap)}else{if(A-(J._offsetSize(D[E],F.overlap)/2)>=0){B=E+1<\/script>')}}})()}; var loggedControl = { pulldownSig: [], init: function(userData) { if (!userData) return; if (!document.images['__TARGEO_PANEL_KEEP_SESSION__']) { document.body.appendChild(IMG({'src':'/blank.html?img=1234&logdate', 'width':1, 'height':1, 'style':'position:absolute;left:-1px;top:-1px;', 'name':'__TARGEO_PANEL_KEEP_SESSION__'})); setInterval(function (){document.images['__TARGEO_PANEL_KEEP_SESSION__'].src ="/blank.html?img="+(new Date().getTime()+'_'+(Math.random()*Math.random()).toString().substr(2))}, 300000); } this.userData = userData; var elem = $('user_logged_container'); if (!elem) { return; } elem.style.padding = '0px 15px'; elem.style.height = '33px'; elem.style.color = '#a8a8a8'; elem.style.fontFamily = 'Verdana, Helvetica, Arial, sans-serif'; elem.style.fontSize = '11px'; elem.style.width = '116px'; elem.innerHTML = 'zalogowany jako
'; var logname = ''; if (userData['email']) { logname = userData['email'].replace(/@.*/, '@...'); } else if (userData['first_name']) { logname = userData['first_name']; } this.loggedAs = SPAN({'style': 'display: inline-block; width: 91px; height: 12px; margin-top: 2px; padding: 1px 17px 3px 2px; background: url('+location.protocol+'//img.targeo.pl/i/skins/blue/toolbar/logged_bg.png) 0 0 no-repeat; color: #ffffff; overflow: hidden'}, logname); elem.appendChild(this.loggedAs); this.pulldownSig.push(connect(elem, 'onclick', this, 'showPulldownMenu')); }, createPulldownMenu: function (element, dims, top, options) { if (top) { var tl = DIV({'style': 'position: absolute; left: 0; top: 0; width: '+(dims.w-15)+'px; height: 10px; overflow: hidden'}, IMG({'src': location.protocol+'//img.targeo.pl/i/skins/blue/toolbar/pulldown-tl.png'})); var tr = DIV({'style': 'position: absolute; right: 0; top: 0; width: 15px; height: 10px; overflow: hidden'}, IMG({'src': location.protocol+'//img.targeo.pl/i/skins/blue/toolbar/pulldown-tr.png'})); appendChildNodes(element, tl, tr); } var cl = DIV({'style': 'position: absolute; left: 0; top: '+(top ? 10 : 0)+'px; width: '+(dims.w-15)+'px; height: '+(dims.h-32)+'px; overflow: hidden'}, IMG({'src': location.protocol+'//img.targeo.pl/i/skins/blue/toolbar/pulldown-cl.png'})); var cr = DIV({'style': 'position: absolute; right: 0; top: '+(top ? 10 : 0)+'px; width: 15px; height: '+(dims.h-32)+'px; overflow: hidden'}, IMG({'src': location.protocol+'//img.targeo.pl/i/skins/blue/toolbar/pulldown-cr.png'})); var bl = DIV({'style': 'position: absolute; left: 0; bottom: 0; width: '+(dims.w-15)+'px; height: 32px; overflow: hidden'}, IMG({'src': location.protocol+'//img.targeo.pl/i/skins/blue/toolbar/pulldown-bl.png'})); var br = DIV({'style': 'position: absolute; right: 0; bottom: 0; width: 15px; height: 32px; overflow: hidden'}, IMG({'src': location.protocol+'//img.targeo.pl/i/skins/blue/toolbar/pulldown-br.png'})); var c = DIV({'style': 'position: absolute; left: 0; top: 0; width: '+(dims.w-18)+'px; height: '+(dims.h-12)+'px; padding: 5px 7px 7px 7px;'}); appendChildNodes(element, cl, cr, bl, br, c); var d = null; for (var i = 0; i < options.length; i++) { d = DIV({'class': 'targeo-topbar-pulldown-option'}, DIV({'class': 'targeo-topbar-pulldown-option-bgl', 'style': 'width: '+(dims.w-22)+'px'}), DIV({'class': 'targeo-topbar-pulldown-option-bgr'}), DIV({'class': 'targeo-topbar-pulldown-option-inner'}, options[i].label) ); connect(d, 'onmouseover', d, function(){addElementClass(this, 'targeo-topbar-pulldown-option-hover');}); connect(d, 'onmouseout', d, function(){removeElementClass(this, 'targeo-topbar-pulldown-option-hover');}); connect(d, 'onclick', options[i].handler); c.appendChild(d); if (i < options.length - 1) { c.appendChild(DIV({'class': 'targeo-topbar-pulldown-separator'})); } } }, showPulldownMenu: function(event) { event.stop(); signal(document.body, 'onclick', event); disconnect(this.pulldownSig[0]); this.pulldownSig = []; if (!this.pulldown) { var options = [ /*{label: _ML['Login_MapSettings'], handler: partial(this.getMapConfig, true)}, {label: _ML['Login_ChangeData'], handler: partial(this.showRegistrationForm, true)}, {label: _ML['Login_ChangePassword'], handler: this.changePassword},*/ {label: 'Ustawienia', handler: function(){window.location=_BASE_HREF+"ustawienia";}}, {label: 'Zgłoś uwagę', handler: function(){window.location=_BASE_HREF+"support";}}, {label: 'Wyloguj', handler: this.logOut} ]; var dims = {w: 117, h: 17+options.length*25+(options.length-1)*8}; this.pulldown = DIV({'class': 'targeo-topbar-pulldown', 'style': 'position: absolute; width: '+dims.w+'px; height: '+dims.h+'px;'}); this.createPulldownMenu(this.pulldown, dims, false, options); } var pos = getElementPosition(this.loggedAs); document.body.appendChild(this.pulldown); setElementPosition(this.pulldown, {x: pos.x-2, y: pos.y+17}); this.loggedAs.style.background = 'url('+location.protocol+'//img.targeo.pl/i/skins/blue/toolbar/logged_bg-hover.png) 0 0 no-repeat'; this.loggedAs.style.paddingRight = '23px'; this.loggedAs.style.color = '#222222'; addElementClass('user_logged_container', 'targeo-topbar-tool-pulldown'); this.pulldownSig.push(connect(document.body, 'onclick', this, 'hidePulldownMenu')); this.pulldownSig.push(connect(window, 'onkeydown', this, function(ev){if (ev.key().string == 'KEY_ESCAPE') this.hidePulldownMenu();})); this.pulldownSig.push(connect(document.body, 'onkeydown', this, function(ev){if (ev.key().string == 'KEY_ESCAPE') this.hidePulldownMenu();})); this.pulldownSig.push(connect(window, 'onresize', this, 'hidePulldownMenu')); }, hidePulldownMenu: function() { forEach(this.pulldownSig, disconnect); this.pulldownSig = []; this.pulldownSig.push(connect(this.loggedAs, 'onclick', this, 'showPulldownMenu')); var opts = getElementsByTagAndClassName('div', 'targeo-topbar-pulldown-option', this.pulldown); for (var i = 0; i < opts.length; i++) { disconnectAll(opts[i]); } this.pulldown.innerHTML = ''; this.pulldown = null; this.loggedAs.style.background = 'url('+location.protocol+'//img.targeo.pl/i/skins/blue/toolbar/logged_bg.png) 0 0 no-repeat'; this.loggedAs.style.paddingRight = '17px'; this.loggedAs.style.color = '#ffffff'; removeElementClass('user_logged_container', 'targeo-topbar-tool-pulldown'); removeElement(this.pulldown); }, logOut: function() { location = _BASE_HREF+'?a=logout'; } }; Targeo = {}; DJSONCall = {}; Targeo.DJSONCall = DJSONCall; DJSON = function() { this.status = 'idle'; this.uid = null; this.scriptElements = {}; this.frameDocuments = {}; this.delayed = []; this.dynServerNo = { 'default': 4 ,'search': 5 ,'description': 6 ,'post': 9 } bindMethods(this); } DJSON.delayedPost = []; DJSON.postInterval = null; DJSON.postWatchIds = {}; DJSON.setPostWatch = function (uid) { DJSON.postWatchIds[uid] = true; if (isUndefinedOrNull(DJSON.postInterval)) { DJSON.postInterval = setInterval(DJSON.postWatch, 200); } }; DJSON.cleanPostWatch = function (uid) { if (!isUndefined(DJSON.postWatchIds[uid])) { delete(DJSON.postWatchIds[uid]); if (keys(DJSON.postWatchIds).length === 0) { clearInterval(DJSON.postInterval); DJSON.postInterval = null; } } } DJSON.postWatch = function () { var hash = window.location.hash; if (hash.indexOf('#') < 0 || hash.length == 1 || hash.indexOf('targeo-top') > 0) { return; } var rx, rs; hash = hash.substr(1); for (var uid in DJSON.postWatchIds) { rx = new RegExp(uid+'\\((.*)\\)'); if (DJSON.postWatchIds[uid] && (rs = hash.match(rx)) && rs.length == 2 && typeof (DJSONCall[uid]) == 'function') { DJSON.postWatchIds[uid] = false; setTimeout(partial(DJSONCall[uid], evalJSON(decodeURIComponent(rs[1]))), 0); location.hash = '#targeo-top'; } } }; DJSON.prototype = { request: function (url, /* optional */ params, args) { /*** @param params: Parametry które będą dołączone do url'a @type: Object; {nazwa_parametru1: wartość1, nazwa_parametru2: wartość2 [...] } @param: args: Dodatkowe argumenty z jakimi zostanie wywołany callback @type: Array ***/ if (typeof (url) !== 'string') { return; } if (typeof(params) !== 'object' || isArrayLike(params)) { if (params) { $log('DJSON: params given / wrong type / !object || isArrayLike'); } var params = {}; } if (!isArrayLike(args)) { if (args) { $log('DJSON: args given / wrong type / !isArrayLike'); } var args = []; } this.urlParams(params); //if (this.status == 'processing') { if (this.status != 'idle') { /*** tutaj przypadek gdy już jest realizowany callback -> nie możemy go przerwać. należy wywołać request za chwilę (setTimeOut?) return; ***/ log('DJSON.status -> processing'); //console.log(this); this.delayed.push({'url': url, 'params': params, 'args': args}); return; } this.status = 'requesting'; this.uid = this.uniqid('djson'); var dynServerNo = this.dynServerNo['default']; if (!isUndefinedOrNull(params['rpc'])) { if ( params['rpc'].toLowerCase().indexOf('search') >= 0 || params['rpc'].toLowerCase().indexOf('captcha') >= 0) { dynServerNo = this.dynServerNo['search']; } else if (params['rpc'].toLowerCase().indexOf('description') >= 0) { dynServerNo = this.dynServerNo['description']; } } url = this.getDynUrl(url, dynServerNo); log('DJSON.request('+ url +') ', serializeJSON(params)); url += (url.indexOf('?') == -1 ? "?" : "&") + "djson=" + encodeURIComponent(this.uid); for (var i in params) { url += '&'+encodeURIComponent(i)+'='+urlEncode(params[i]); } DJSONCall[this.uid] = bind(this.handleResponse, this, args); var element = createDOM('script', {src: url, type: 'text/javascript', charset: 'utf-8'}); this.scriptElements[this.uid] = document.getElementsByTagName('head')[0].appendChild(element); }, requestAbort: function (url, /* optional */ params, args) { log('DJSON.requestAbort.url: '+url); this.abort(); this.request.apply(this, arguments); }, post: function (url, params, dataToPost, args) { if (keys(DJSON.postWatchIds).length > 0) { DJSON.delayedPost.push({'djson': this, 'url': url, 'params': params, 'dataToPost': dataToPost, 'args': args}); return; } this.status = 'posting'; this.uid = this.uniqid('djson'); this.urlParams(params); url = this.getDynUrl(url, this.dynServerNo['post']) + "?djson=" + encodeURIComponent(this.uid); for (var i in params) { url += '&'+encodeURIComponent(i)+'='+encodeURIComponent(params[i]); } log('DJSON.post.url: '+url); DJSONCall[this.uid] = bind(this.handleResponse, this, args); DJSON.setPostWatch(this.uid); var target = this.uid + '_djson_iframe'; if (document.body.insertAdjacentHTML) { document.body.insertAdjacentHTML('beforeEnd', ''); } else { var element = document.createElement('iframe'); element.setAttribute('id', target); element.setAttribute('name', target); element.style.display = 'none'; document.body.appendChild(element); } var href = location.href; if (href.indexOf('#') > -1) { href = href.substring(0,href.indexOf('#')); } var elementForm = FORM({'method':'post', 'action':url, 'target': target, 'id': this.uid + '_djson_form', 'style':'position:absolute; visibility:hidden;'}, TEXTAREA({'name': this.uid + '_dataToPost', 'id': this.uid + '_dataToPost'}), INPUT({'name': 'hostname', 'type':'hidden', 'value': href})); document.body.appendChild(elementForm); if (isUndefinedOrNull(dataToPost)) { dataToPost = {}; } try { $(this.uid + '_dataToPost').value = serializeJSON(dataToPost); elementForm.submit(); } catch (e) { //alert(_ML['DJSON_ERROR'].replace(/%s/, dataToPost)); removeElement(elementForm); } }, setCallback: function (fnCallback, /* optional */ thisArg) { this.callback = (typeof (thisArg) == 'undefined') ? fnCallback : bind(fnCallback, thisArg); }, handleResponse: function(args, response) { this.status = 'processing'; log('DJSON.handleResponse: '+this.uid); //this.callback.apply(null, concat([response], args)); setTimeout(bind(function () { try { //console.log(response); if (response.autherror) { TargeoWizard.showOverlay('Zbyt długi okres bezczynności - proszę się zalogować.', true, function(){if(TargeoWizard && TargeoWizard.onUnloadSig)disconnect(TargeoWizard.onUnloadSig); window.location = './';}); } this.callback.apply(null, concat([response], args)); } catch (e) { console.error('ERROR: RPC_callback['+this.uid+']\n'+this.errorToString(e)); } }, this), 0); this.clean(this.uid); this.setIdle(); }, clean: function(uid) { if (typeof (this.scriptElements[uid]) != 'undefined') { this.scriptElements[uid].parentNode.removeChild(this.scriptElements[uid]); delete this.scriptElements[uid]; if (!isUndefinedOrNull(this.frameDocuments[uid])) { delete this.frameDocuments[uid]; } } if (typeof (DJSONCall[this.uid]) != 'undefined') { DJSONCall[this.uid] = undefined; try {delete DJSONCall[this.uid];} catch (e) {} } DJSON.cleanPostWatch(uid); var element; if (element = $(uid + '_djson_iframe')) { element.parentNode.removeChild(element); } if (element = $(this.uid + '_djson_form')) { element.parentNode.removeChild(element); } }, abort: function() { if(this.status == 'idle') return; log('DJSON.abort: '+this.uid); this.clean(this.uid); this.delayed = []; for (var i = DJSON.delayedPost.length-1; i >= 0; i--) { if (DJSON.delayedPost[i].djson == this) { DJSON.delayedPost.splice(i, 1); } } this.setIdle(); }, setIdle: function () { this.status = 'idle'; log('DJSON.status: idle'); if (this.delayed.length > 0) { var request = this.delayed.shift(); log('DJSON.delayed ('+this.delayed.length+'): '+request.url); this.request(request.url, request.params, request.args); } if (DJSON.delayedPost.length > 0) { var pending = false; for (var i in DJSON.postWatchIds) { if (DJSON.postWatchIds) { pending = true; break; } } if (!pending) { var request = DJSON.delayedPost.shift(); log('DJSON.delayedPost ('+DJSON.delayedPost.length+'): '+request.url); request.djson.post(request.url, request.params, request.dataToPost, request.args); } } }, getDynUrl: function (url, nr) { var re1 = new RegExp(_TARGEO_GLOBALS.urlRe); if (isUndefinedOrNull(nr)) { nr = Math.round(Math.random()*5)+4; } return url.replace(re1, _TARGEO_GLOBALS.urlDyn.replace(/#/, nr)); }, errorToString: function (e) { var err_str = 'Error data:\n\n'; for (var i in e) { err_str += i+': '+e[i]+'\n'; } return err_str; }, uniqid: function (/* optional */ prefix) { var prefix = (arguments.length === 1) ? prefix + '_' : ''; return prefix+new Date().getTime()+'_'+(Math.random()*Math.random()).toString().substr(2); } ,urlParams: function (params) { if (typeof (params) == 'object') { params[_TARGEO_GLOBALS.sessionName] = _TARGEO_GLOBALS.sessionId; params[_TARGEO_GLOBALS.keyName] = _TARGEO_GLOBALS.keyId; params['k'] = _TARGEO_GLOBALS.k; params['vn'] = _TARGEO_GLOBALS.vn; if (!isUndefinedOrNull(_TARGEO_GLOBALS.chr) && _TARGEO_GLOBALS.chr != 'utf-8') { params['enc'] = _TARGEO_GLOBALS.chr; } return params; } else { return _TARGEO_GLOBALS.urlParams; } } }; var TargeoCaptchaImage = { processing: false, element: null, signals: [], initialized: false, runOnce: false, options: {}, initialize: function(wizard, /* optional */ callback) { if (this.initialized) { return; } this.initialized = true; this.element = DIV({'id':'targeo_captcha_container', 'class':'overlay_label'}); this.callback = (typeof (callback) == 'function') ? callback : null; if (wizard) { wizard.showOverlay(''); this.wizard = wizard; } else { showOverlay(); } var HTML = ''; HTML += '
'; HTML += ''; HTML += '
Przepisz litery widoczne na obrazku:
'; HTML += ''; HTML += ''; HTML += '
'; this.djson = new DJSON(); this.element.style.zIndex = '32201'; this.element.innerHTML = HTML; document.body.appendChild(this.element); var vpd = getViewportDimensions(); var vpp = getViewportPosition(); var ldims = getElementDimensions(this.element); setElementPosition(this.element, {x: vpp.x + Math.floor((vpd.w-ldims.w)/2), y: vpp.y + Math.floor((vpd.h-ldims.h)/2)}); this.disabled(); this.show(); this.signals.push(connect($('targeo_captcha_image_value'), 'onkeydown', this, 'keyup')); this.signals.push(connect($('targeo_captcha_button_check'), 'onclick', this, 'check')); this.signals.push(connect('targeo_captcha_button_check', 'onmouseover', this, function(){$('targeo_captcha_button_check').src = 'i/ok_on.png';})); this.signals.push(connect('targeo_captcha_button_check', 'onmouseout', this, function(){$('targeo_captcha_button_check').src = 'i/ok.png';})); this.signals.push(connect(window, 'onresize', this, 'reposition')); this.focusValueField(); //$('targeo_captcha_image_value').focus(); //connect($('targeo_captcha_button_reload'), 'onclick', bind(this.reload, this)); }, reload: function() { $('targeo_captcha_image_image').src= _TARGEO_GLOBALS.url+'service.html?rpc=CaptchaImage&'+Math.random()+'&'+ _TARGEO_GLOBALS.urlParams; $('targeo_captcha_image_value').value = ''; $('targeo_captcha_button_check').disabled = true; $('targeo_captcha_image_value').focus(); }, check: function() { if (this.processing) return; this.processing = true; //$('targeo_captcha_button_check').value = _ML['captchaBtnChecking']; //$('targeo_captcha_button_reload').disabled = true; $('targeo_captcha_indicator').style.visibility = 'visible'; this.disabled(); this.djson.setCallback(this.onRequestComplete, this); var params = {'value':$('targeo_captcha_image_value').value, 'rpc': 'CaptchaCheck'}; if (this.wizard) { this.wizard.urlParams(params); } else { this.urlParams(params); } this.djson.request(_TARGEO_GLOBALS.url+'service.html', params); }, keyup: function(event) { if(!this.disabled() && event.key().string == 'KEY_ENTER') this.check(); }, disabled: function() { var disabled = (this.processing || $('targeo_captcha_image_value').value.length == 0); $('targeo_captcha_button_check').disabled = disabled; return disabled; }, show: function() { //Targeo.Overlay.show(); this.element.style.display = 'block'; //$('targeo_captcha_image_value').focus(); }, hide: function() { forEach(this.signals, disconnect); removeElement(this.element); this.initialized = false; //Targeo.Overlay.hide(); }, focusValueField: function() { $('targeo_captcha_image_value').focus(); }, onRequestComplete: function(json) { $('targeo_captcha_indicator').style.visibility = 'hidden'; this.processing = false; if(json.success == '1') { this.hide(); if (this.wizard) { this.wizard.hideOverlay(); } else { hideOverlay(); } _TARGEO_GLOBALS.captcha = false; (this.callback) ? this.callback() : location.reload(); } else { alert(_ML['captchaInfoError']); //$('targeo_captcha_button_reload').disabled = false; this.disabled(); this.reload(); //$('targeo_captcha_button_check').value = _ML['captchaBtnCheck']; } }, reposition: function() { var dims = getElementDimensions(document.body); var vpd = getViewportDimensions(); var vpp = getViewportPosition(); var ldims = getElementDimensions(this.element); setElementDimensions('overlay', {w: dims.w, h: Math.max(dims.h, vpd.h)}); setElementPosition(this.element, {x: vpp.x + Math.floor((vpd.w-ldims.w)/2), y: vpp.y + Math.floor((vpd.h-ldims.h)/2)}); }, urlParams: function (params) { if (typeof (params) == 'object') { params[_TARGEO_GLOBALS.sessionName] = _TARGEO_GLOBALS.sessionId; params[_TARGEO_GLOBALS.keyName] = _TARGEO_GLOBALS.keyId; params['k'] = _TARGEO_GLOBALS.k; params['vn'] = _TARGEO_GLOBALS.vn; if (!isUndefinedOrNull(_TARGEO_GLOBALS.chr) && _TARGEO_GLOBALS.chr != 'utf-8') { params['enc'] = _TARGEO_GLOBALS.chr; } return params; } else { return _TARGEO_GLOBALS.urlParams; } } }; TargeoSuggest = function (inputElement, resultElement, url, options) { this.inputElement = $(inputElement); this.resultElement = document.createElement('div'); this.resultElement.style.position = 'absolute'; this.resultElement.style.display = 'none'; this.resultElement.className = 'suggest_list'; this.resultElement.id = resultElement; document.body.appendChild(this.resultElement); this.url = url; this.options = options || {}; if (isUndefinedOrNull(this.options.zIndex)) { this.options.zIndex = 12800; } this.suggestWindow = DIV({'style': 'position: absolute; width: 100px; height: 100; background-color: #fff; border: 1px solid #ccc; z-index: '+this.options.zIndex}); this.enabled = this.options.enabled; this.minChars = this.options.minChars || 1; this.delay = this.options.delay || 250; this.paramName = this.options.paramName || 'value'; this.addParams = this.options.addParams || function(){return {'rpc': 'SearchSuggest'};}; this.indicator = $(this.options.indicator) || null; this.hoverClass = this.options.hoverClass || 'selected'; this.getEntry = this.options.getEntry || function(entry) {return entry.name;}; this.getSuggestValue = this.options.getSuggestValue || function(entry) {return entry.name;}; this.onClick = this.options.onClick || function(){}; this.onEnter = this.options.onEnter || function(){}; this.onChange = this.options.onChange || function(){}; this.onHide = this.options.onHide || function(){}; this.selectFromField = this.options.selectFromField || false; this.index = 0; this.count = 0; this.changed = false; this.active = false; this.hideList = false; this.timeout = null; this.entries = []; this.djson = new DJSON(); this.hasFocus = true; this.djson.setCallback(this.onRequestComplete, this); this.value = this.inputElement.value; this.lastRequested = ''; this.onListItemOver = bind(function (element, event) { var index; if (index = element.getAttribute('suggestindex')) { this.markPointed(index); } }, this); this.onListItemClick = bind(function (element, event) { this.selectEntry(element.getAttribute('suggestindex')); }, this); this.signals = []; if (this.enabled) { this.signals.push(connect(this.inputElement, 'onblur', this, 'onBlur')); this.signals.push(connect(this.inputElement, 'onfocus', this, 'onFocus')); // If you're looking for a special key, look for it in keydown or // keyup, but never keypress. If you're looking for a Unicode // chracter, look for it with keypress, but never kd or ku. this.signals.push(connect(this.inputElement, 'onkeydown', this, 'onKeyDown')); if(this.selectFromField) this.signals.push(connect(this.inputElement, 'onmouseover', this, partial(this.markPointed, -1))); this.signals.push(connect(window, 'onresize', this, function() { if (this.suggestWindow && this.suggestWindow.parentNode) this.show(); })); } this.inputElement.setAttribute('autocomplete', 'off'); }; TargeoSuggest.prototype = { activate: function() { this.active = true; }, deactivate: function() { this.active = false; this.hideList = true; this.lastRequested = ''; this.entryCount = 0; }, destroy: function() { forEach(this.signals, disconnect); }, onKeyDown: function (event) { var keyString = event.key().string; //log('KeyDown: '+keyString); if(!this.active) { if(keyString == 'KEY_ENTER' && this.selectFromField) { this.selectEntry(); } return; } switch(keyString) { case 'KEY_TAB': if(this.index >= 0) {this.selectEntry();} this.markPointed(-1); return; break; case 'KEY_ENTER': if(this.hasFocus && this.selectFromField) { this.index = -1; } this.selectEntry(); if(this.index >= 0) event.stop(); else if(this.selectFromField) {this.hideList = true;}; this.markPointed(-1); return; break; case 'KEY_ESCAPE': this.hide(); this.hideList = true; this.markPointed(-1); event.stop(); return; break; case 'KEY_ARROW_UP': this.markPrevious(); event.stop(); return; break; case 'KEY_ARROW_DOWN': this.markNext(); event.stop(); return; break; case 'KEY_DELETE': case 'KEY_BACKSPACE': case 'KEY_UNKNOWN': case 'KEY_SPACEBAR': // break; } this.changed = true; this.onChange(); this.hasFocus = true; this.markPointed(-1); this.hideList = false; if(this.timeout) clearTimeout(this.timeout); this.timeout = setTimeout(bind(this.onValueChange, this), this.delay); }, onBlur: function(event) { setTimeout(bind(this.hide, this), 250); this.hideList = true; if (typeof(this.options.onBlur) == 'function') { this.options.onBlur(); } }, onFocus: function(event) { this.markPointed(-1); if(this.active && this.entryCount > 0) { this.hideList = false; this.show(); } }, onValueChange: function() { this.changed = false; this.value = this.inputElement.value; if (this.value.length >= this.minChars) { var params = {}; params[this.paramName] = this.value; update(params, this.addParams()); var newRequest = this.url+(this.url.indexOf('?') == -1 ? '?' : '&')+queryString(params); if(newRequest != this.lastRequested) { this.showIndicator(); this.lastRequested = newRequest; this.entryCount = 0; this.djson.requestAbort(this.url, params); } else { this.makeList(); } } else { this.djson.abort(); this.lastRequested = ''; this.entryCount = 0; this.clearList(); this.hide(); } }, onRequestCompleteCustom: function (json) { return true; }, onRequestComplete: function(json) { if(!this.onRequestCompleteCustom(json)) { return ; } this.hideIndicator(); try { this.entries = json.items; this.entryCount = json.items.length; } catch (e) { this.entries = []; this.entryCount = 0; } this.makeList(); }, clearList: function () { var element; while (this.resultElement.childNodes.length) { element = this.resultElement.childNodes[0]; try { disconnectAll(element); disconnectAll(element); } catch (e) { // } this.resultElement.removeChild(element); } }, makeList: function() { if (!this.active || this.entryCount == 0) { this.hide(); } else { var element; var entry; if (!this.changed) { this.clearList(); for (var i=0; i= 0 && this.index < this.resultElement.childNodes.length) { addElementClass(this.resultElement.childNodes[this.index], this.hoverClass); /**/ if (this.suggestWindow.parentNode) { var elpos = getElementPosition(this.resultElement.childNodes[this.index], this.suggestWindow); var eldims = getElementDimensions(this.resultElement.childNodes[this.index]); var listdims = getElementDimensions(this.suggestWindow); if (elpos.y + eldims.h > listdims.h) { this.suggestWindow.scrollTop = elpos.y + eldims.h + this.suggestWindow.scrollTop - listdims.h; } else if (elpos.y < 0) { this.suggestWindow.scrollTop = Math.max(this.suggestWindow.scrollTop + elpos.y, 0); } } } }, remClass: function() { if (this.index >= 0 && this.index < this.resultElement.childNodes.length) { removeElementClass(this.resultElement.childNodes[this.index], this.hoverClass); } }, selectEntry: function() { this.index = (arguments.length == 1) ? arguments[0] : this.index; if (this.index == -1) return; if (this.resultElement.childNodes[this.index].entry._disabled) return; if(this.index >= 0 && this.index < this.resultElement.childNodes.length && this.entryCount > 0) { var element = this.resultElement.childNodes[this.index]; if (element.getAttribute('suggestvalue')) { this.inputElement.value = element.getAttribute('suggestvalue'); } this.value = this.inputElement.value; this.onClick(element); this.entryCount = 0; this.lastRequested = ''; this.hideList = true; this.hide(); } else { this.hide(); this.value = this.inputElement.value; this.onEnter(this.value); } }, markPointed: function(index) { this.remClass(); if (index > this.entryCount-1 || index < 0) this.index = (this.selectFromField) ? -1 : 0; else this.index = index; this.addClass(); }, markPrevious: function() { this.remClass(); if (this.index > 0 || (this.index == 0 && this.selectFromField)) { this.index--; } else { this.index = this.entryCount-1; } if (this.index > -1 && this.resultElement.childNodes[this.index].entry._disabled) { this.markPrevious(); return; } this.hasFocus = (this.index == -1); this.addClass(); }, markNext: function() { this.remClass(); if (this.index < this.entryCount-1) { this.index++; } else { this.index = (this.selectFromField) ? -1 : 0; } if (this.index > -1 && this.resultElement.childNodes[this.index].entry._disabled) { this.markNext(); return; } this.hasFocus = (this.index == -1); this.addClass(); }, hide: function() { this.hideIndicator(); this.resultElement.style.display = 'none'; if (this.suggestWindow.parentNode) { removeElement(this.suggestWindow); } this.onHide(); }, show: function() { if(this.hideList) {this.hide();return;} var wh = elementDimensions(this.inputElement); var xy = elementPosition(this.inputElement); var ep = {x: xy.x, y: -10000}; document.body.appendChild(this.resultElement); updateNodeAttributes(this.resultElement, { 'style': { 'position': 'absolute', 'left': ep.x+'px', 'top': ep.y+'px', 'zIndex': this.options.zIndex, 'display': 'block' } }); var wh2 = elementDimensions(this.resultElement); var vd = getElementDimensions(document.body); ep.y = wh.h+xy.y-1; if (ep.y + wh2.h > vd.h) { wh2.h = vd.h - ep.y; wh2.w += 20; this.suggestWindow.style.overflow = 'auto'; } setElementDimensions(this.suggestWindow, {w: wh2.w, h: wh2.h}); this.suggestWindow.appendChild(this.resultElement); setElementPosition(this.resultElement, {x: 0, y: 0}); document.body.appendChild(this.suggestWindow); setElementPosition(this.suggestWindow, ep); }, showIndicator: function() { if(this.indicator) this.indicator.style.display = (this.indicator.nodeName.toUpperCase() == 'SPAN') ? 'inline' : 'block'; }, hideIndicator: function() { if(this.indicator) this.indicator.style.display = 'none'; }, hiliteIt: function (term, txt, className) { var ltr = { a: 'ą', c: 'ć', e: 'ę', l: 'ł', n: 'ń', o: 'ó', s: 'ś', z: 'ź|ż' }; term = term.toLowerCase(); for (var i in ltr) { term = term.replace(new RegExp("(" + i + ")", "gi"), "[$1|" + ltr[i] + "]"); } return txt.replace(new RegExp("(" + term + ")", "gi"), '$1'); } }; SelectControl = function (elem, id, options) { bindMethods(this); this.id = id; this.element = elem; this.signals = []; this.options = {}; var width = 205; var className = null; if (this.element.className && (className = /select_([0-9]+)/.exec(this.element.className)) !== null) { width = className[1]; } var HTML = []; HTML.push(''); HTML.push(''); this.element.innerHTML = HTML.join(''); this.expanded = false; this.signals = []; this.signals.push(connect(this.element, 'onclick', this, partial(this.toggle, null))); this.signals.push(connect(id, 'onkeydown', this, 'onKeyDown')); this.signals.push(connect(document.body, 'onclick', this, partial(this.toggle, false))); var opts = getElementsByTagAndClassName('div', 'select_'+width+'_option', id+'_options'); for (var i = 0; i < opts.length; i++) { this.signals.push(connect(opts[i], 'onclick', this, partial(this.setValueByElement, opts[i]))); this.signals.push(connect(opts[i], 'onmouseover', this, partial(this.setActiveElement, opts[i]))); } this.element.style.cursor = 'pointer'; } SelectControl.prototype = { toggle: function(show, event) { if (event.src() === this.element) { event.stop(); } this.expanded = show != null ? show : !this.expanded; signal(this, 'onToggle', this.expanded); $(this.id+'_options').style.display = this.expanded ? 'block' : 'none'; if (this.expanded) { $(this.id).focus(); var sdims = getElementDimensions(this.id+'_options'); if (sdims.h > 290) { sdims.h = 290; $(this.id+'_options').style.height = '290px'; $(this.id+'_options_inner').style.height = '282px'; $(this.id+'_options_inner').style.overflow = 'auto'; } this.listDimensions = sdims; var spos = getElementPosition(this.id+'_options'); var vpos = getViewportPosition(); var vdims = getViewportDimensions(); if (spos.y + sdims.h > vpos.y + vdims.h) { if (document.documentElement && typeof(document.documentElement.scrollTop) == 'number') { document.documentElement.scrollTop = spos.y + sdims.h + 10 - vdims.h; } else if (document.body && typeof(document.body.scrollTop) == 'number') { document.body.scrollTop = spos.y + sdims.h + 10 - vdims.h; } } if (this.activeElement) { var cont = $(this.id+'_options_inner'); var elpos = getElementPosition(this.activeElement, cont); var eldims = getElementDimensions(this.activeElement); var cdims = getElementDimensions(cont); if (elpos < 0 || elpos.y + eldims.h > cdims.h) { cont.scrollTop = cont.scrollTop + elpos.y; } } } }, onKeyDown: function(event) { var keyString = event.key().string; if (!this.expanded && (keyString == 'KEY_ENTER' || keyString == 'KEY_ARROW_DOWN')) { event.stop(); this.toggle(true, event); if (!this.activeElement) { this.setActiveElement($(this.id+'_option_1')); } } else if (this.expanded) { if (keyString == 'KEY_ENTER' && this.activeElement) { this.setValueByElement(this.activeElement); } else if (keyString == 'KEY_ESCAPE' || keyString == 'KEY_TAB') { this.toggle(false, event); } else if (keyString == 'KEY_ARROW_DOWN') { event.stop(); if (this.activeElement && this.activeElement.getAttribute('idx') < this.optionsCount) { var idx = parseInt(this.activeElement.getAttribute('idx')); var newId = null; var disabled = false; do { idx++; newId = this.id+'_option_'+idx; disabled = hasElementClass(newId, 'option_disabled'); } while (idx < this.optionsCount && disabled); if (!disabled) { var optContainer = $(this.id+'_options_inner'); var elpos = getElementPosition(newId, optContainer); var eldims = getElementDimensions(newId); if (elpos.y + eldims.h > this.listDimensions.h - 8) { optContainer.scrollTop = elpos.y + eldims.h + optContainer.scrollTop - this.listDimensions.h + 8; } this.setActiveElement($(newId)); } } } else if (keyString == 'KEY_ARROW_UP') { event.stop(); if (this.activeElement && this.activeElement.getAttribute('idx') > 0) { var idx = parseInt(this.activeElement.getAttribute('idx')); var newId = null; var disabled = false; do { idx--; newId = this.id+'_option_'+idx; disabled = hasElementClass(newId, 'option_disabled'); } while (idx > 0 && disabled); if (!disabled) { var optContainer = $(this.id+'_options_inner'); var elpos = getElementPosition(newId, optContainer); if (elpos.y < 0) { optContainer.scrollTop = Math.max(optContainer.scrollTop + elpos.y, 0); } this.setActiveElement($(newId)); } } } } }, setActiveElement: function(elem) { if (this.activeElement) { removeElementClass(this.activeElement, 'option_hover'); } if (!hasElementClass(elem, 'option_disabled')) { addElementClass(elem, 'option_hover'); this.activeElement = elem; } else { this.activeElement = null; } }, setValueByElement: function(elem, ev) { if (!hasElementClass(elem, 'option_disabled')) { var sig = !this.value || elem.getAttribute('value') != this.value.value ? 'onChange' : 'onSelect'; this.value = {idx: elem.getAttribute('idx'), value: elem.getAttribute('value'), text: elem.innerHTML}; $(this.id).innerHTML = this.value.text; if (!this.noSignal) { signal(this, sig, elem.getAttribute('value')); } } else if (ev) { ev.stop(); } }, setValue: function(value) { if (this.options[value]) { this.noSignal = true; this.setValueByElement($(this.options[value])); this.noSignal = false; this.setActiveElement($(this.options[value])); } }, disableOption: function(value) { if (this.options[value]) { addElementClass($(this.options[value]), 'option_disabled'); } }, enableOption: function(value) { if (this.options[value]) { removeElementClass($(this.options[value]), 'option_disabled'); } }, destroy: function() { forEach(this.signals, disconnect); } }; POICategorySelect = function (elem, id, category, options) { bindMethods(this); this.id = id; this.element = elem; this.element.innerHTML = ''; this.category = category; this.djson = new DJSON(); this.select = elem.className.match(/^select/); if (this.select) { if (options.buttonElement) { this.button = options.buttonElement; this.button.id = id; this.button.innerHTML = this.category ? this.category.name : 'Wybierz kategorię'; } else { this.button = BUTTON({'id': id}, this.category ? this.category.name : 'Wybierz kategorię'); } this.element.appendChild(this.button); this.elements = {path: DIV(), list: DIV({'style': 'overflow: auto'})}; if (options.inputElement) { this.elements.suggest = options.inputElement; if (this.elements.suggest.tagName != 'INPUT') { var inp = getFirstElementByTagAndClassName('input', null, this.elements.suggest); inp.id = id+'_suggest_input'; } else { this.elements.suggest.id = id+'_suggest_input'; } } else { this.elements.suggest = INPUT({type: 'text', id: id+'_suggest_input'}); } this.elements.suggest = DIV({}, 'Szukaj: ', this.elements.suggest); this.expandElement = options.expandElement; this.expandElement.style.position = 'absolute'; document.body.appendChild(this.expandElement); this.controlElement = options.controlElement; appendChildNodes(this.controlElement, this.elements.suggest, this.elements.path, this.elements.list); } else { this.fieldValue = this.category ? this.category.name : ''; elem.appendChild(INPUT({type: 'text', id: this.id, value: this.fieldValue})); } this.categories = {}; this.poiIconSetUrl = _TARGEO_GLOBALS.url+'i/poi/poi-iconset5.png'; this.poiIconSet = {'poi-0':0,'poi-1':1,'poi-10':2,'poi-11':3,'poi-12':4,'poi-13':5,'poi-14':6,'poi-15':7,'poi-16':8,'poi-17':9,'poi-18':10,'poi-19':11,'poi-2':12,'poi-20':13,'poi-21':14,'poi-22':15,'poi-23':16,'poi-24':17,'poi-25':18,'poi-26':19,'poi-27':20,'poi-28':21,'poi-29':22,'poi-3':23,'poi-30':24,'poi-31':25,'poi-32':26,'poi-33':27,'poi-34':28,'poi-35':29,'poi-36':30,'poi-37':31,'poi-38':32,'poi-39':33,'poi-4':34,'poi-40':35,'poi-41':36,'poi-42':37,'poi-43':38,'poi-44':39,'poi-45':40,'poi-46':41,'poi-47':42,'poi-48':43,'poi-49':44,'poi-5':45,'poi-50':46,'poi-51':47,'poi-52':48,'poi-53':49,'poi-54':50,'poi-55':51,'poi-56':52,'poi-57':53,'poi-58':54,'poi-59':55,'poi-6':56,'poi-60':57,'poi-61':58,'poi-7':59,'poi-8':60,'poi-9':61,'poi-services':62,'poi-wiki-cmentarz':63,'poi-wiki-jezioro':64,'poi-wiki-kamienica':65,'poi-wiki-most':66,'poi-wiki-palac':67,'poi-wiki-park':68,'poi-wiki-plac':69,'poi-wiki-szczyt':70,'poi-wiki-wieza':71,'poi-wiki-zamek':72,'poi-wiki':73,'poi-bus':74,'poi-tourist':75,'poi-m-2409':76,'poi-m-2510':77,'poi-m-2197':78,'poi-m-2686':79,'poi-m-2210':80,'poi-m-2489':81,'poi-m-2581':82,'poi-m-2438':83,'poi-m-2472':84,'poi-m-2820':85,'poi-m-2915':86,'poi-m-3304':87,'poi-m-3303':88,'poi-m-3302':89,'poi-m-2398':90,'poi-m-2588':91,'poi-m-2100':92,'poi-m-2116':93,'poi-m-2332':94,'poi-m-2066':95,'poi-m-2303':96,'poi-m-2184':97,'poi-m-3218':98,'poi-m-3402':99,'poi-m-2646':100,'poi-m-2700':101,'poi-m-2778':102,'poi-m-2532':103,'poi-m-2771':104,'poi-m-2617':105,'poi-m-2481':106,'poi-m-2268':107,'poi-m-2558':108,'poi-m-2281':109,'poi-m-2630':110,'poi-m-2461':111,'poi-m-3348':112,'poi-m-2543':113,'poi-m-2525':114,'poi-m-2524':115,'poi-m-2463':116,'poi-m-2464':117,'poi-m-2462':118,'poi-m-3209':119,'poi-m-2410':120,'poi-m-2480':121,'poi-m-2563':122,'poi-m-2222':123,'poi-m-2342':124,'poi-m-2500':125,'poi-m-2578':126,'poi-m-3307':127,'poi-m-3201':128,'poi-m-2306':129,'poi-m-2270':130,'poi-m-2387':131,'poi-m-2457':132,'poi-m-2678':133,'poi-m-2395':134,'poi-m-2555':135,'poi-m-2619':136,'poi-m-2907':137}; this.expanded = false; this.initialized = false; this.options = setdefault(options, {offset: {x: 0, y: 0}}); this.signals = {'control': []}; if (this.select) { this.signals['control'].push(connect(this.element, 'onclick', this, partial(this.toggle, null))); this.signals['control'].push(connect(this.button, 'onkeydown', this, 'onKeyDown')); this.signals['control'].push(connect(window, 'onresize', this, function(){if (this.expanded) this.setControlPosition();})); } else { this.init(); } } POICategorySelect.prototype = { init: function() { if (this.initialized) { return; } disconnect(this.signals['init']); this.suggest = this.createCategorySuggest(this.select ? this.id+'_suggest' : this.id, bind(function(cpath) { this.setCategory(cpath[cpath.length-1]); }, this), {zIndex: 33000, width: 250}); this.djson.setCallback(partial(this.onInit, true), this); this.djson.request(_TARGEO_GLOBALS.url+'service.html', {rpc: 'POIgetConfig'}); }, onInit: function(config, json) { if (config) { this.categoryIcons = json.icons; for (var i = 0; i < json.items.length; i++) { if (json.items[i].attributes) { json.items[i].attributes = evalJSON(json.items[i].attributes); } json.items[i].active = parseInt(json.items[i].active); json.items[i].sub_active = parseInt(json.items[i].sub_active); if ((json.items[i].sub_active & 8) == 0) continue; if (json.items[i].level == 0) { this.categories[json.items[i].id] = json.items[i]; this.categories[json.items[i].id].icon_data = evalJSON(json.items[i].icon_data); this.categories[json.items[i].id]['c'] = []; this.categories[json.items[i].id].iconsetIndex = json.items[i].id in this.categoryIcons && this.categoryIcons[json.items[i].id].i !== null ? this.categoryIcons[json.items[i].id].i : null; continue; } if (json.items[i].icon.substr(0,7) != 'http://') { json.items[i].icon = _TARGEO_GLOBALS.url+json.items[i].icon; } else { json.items[i].icon = json.items[i].icon.replace(/http:\/\/map[as]\.targeo\.pl\//, _TARGEO_GLOBALS.url); } this.categories[json.items[i].id] = json.items[i]; this.categories[json.items[i].id].icon_data = evalJSON(json.items[i].icon_data); this.categories[json.items[i].poi_category_id]['c'].push(json.items[i].id); this.categories[json.items[i].id].iconsetIndex = json.items[i].id in this.categoryIcons && this.categoryIcons[json.items[i].id].i !== null ? this.categoryIcons[json.items[i].id].i : this.categories[json.items[i].poi_category_id].iconsetIndex; } if (this.category && this.category.level > 0) { this.fetchSubcategories(this.category.path[1], bind(this.onInit, this, false)); return; } } this.initialized = true; if (this.select) { this.toggle(true); } }, fetchSubcategories: function(category, handler) { if (!this.categories[category]) return; this.djson.setCallback(this.onSubcategoriesFetch, this); this.djson.requestAbort(_TARGEO_GLOBALS.url+'service.html', {rpc: 'POIgetSubcats', c: category}, [category, handler]); }, onSubcategoriesFetch: function (json, category, handler) { this.categories[category].c = []; if (json.status == 0) { for (var i = 0; i < json.items.length; i++) { var c = json.items[i]; if (!this.categories[c.poi_category_id].c) { this.categories[c.poi_category_id].c = []; } this.categories[c.id] = c; if ((c.sub_active & 8) > 0) { this.categories[c.poi_category_id].c.push(c.id); } this.categories[c.id].iconsetIndex = c.id in this.categoryIcons && this.categoryIcons[c.id].i !== null ? this.categoryIcons[c.id].i : this.categories[c.poi_category_id].iconsetIndex; } handler(); } }, createCategorySuggest: function(id, handler, options) { options = setdefault(options || {'zIndex': 12800, 'width': 280}); //swapDOM($(id+'_input'), Targeo.Base.createInput(id+'_input', '', options.width)); var suggestId = this.select ? id+'_input' : id; var suggest = new TargeoSuggest(suggestId, id+'_results', _TARGEO_GLOBALS.url+'service.html', { enabled: true, paramName: 'q', indicator: id+'_indicator', minChars:3, hoverClass: 'suggest_hover_city', selectFromField:true, zIndex: options.zIndex, getEntry: function(entry, i) { var words = this.inputElement.value.replace(/\s+/, ' ').split(' '); var str = entry.name.replace(/\s+/, ' ').split(' '); for (var j = 0; j < words.length; j++) { if (words[j]) { for (var k = 0; k < str.length; k++) { if (str[k] && str[k].indexOf('') == -1) { str[k] = this.hiliteIt(words[j], str[k], 'suggest_mark_phrase'); } } } } var v = str.join(' '); v = '
'+ v +'
'; if (parseInt(entry.active) == 0) entry._disabled = 1; return v; }, addParams: function(){return {rpc: 'POICategorySuggest', filter: 8};}, onClick: bind(function(element) { if (!parseInt(element.entry.active)) return; if (this.select) { $(suggestId).value = ''; } var cpath = element.entry.path.split(','); if (!this.select) { this.category = element.entry; this.fieldValue = element.entry.name; } var cplen = cpath.length; if (cplen > 2 && !this.categories[cpath[cplen-1]]) { this.fetchSubcategories(cpath[1], bind(arguments.callee, this, element)); return; } handler(cpath); }, this), onBlur: bind(function() { if (!this.select) { var value = this.category ? this.category.name : ''; $(suggestId).value = value; if (value != this.fieldValue) { signal(this, 'onFail', this.fieldValue, value); } } }, this) }); suggest.signals.push(connect($(suggestId), 'onkeydown', suggest, function(event) { var keyString = event.key().string; if (keyString == 'KEY_ENTER') { if (this.suggestWindow && !this.suggestWindow.parentNode) { this.hideList = false; this.onValueChange(); } if (!this.select) { var value = $(suggestId).value; for (var i = 0; i < this.entries.length; i++) { if (this.getSuggestValue(this.entries[i]) == value) { this.selectEntry(i); break; } } } } })); if (!this.select) { suggest.signals.push(connect($(suggestId), 'onkeyup', this, function(event) { this.fieldValue = $(suggestId).value; })); } suggest.hide(); suggest.activate(); return suggest; }, toggle: function(show) { this.expanded = show != null ? show : !this.expanded; if (this.expanded) { if (this.signals['select']) { forEach(this.signals['select'], disconnect); } this.signals['select'] = []; if (!this.initialized) { this.init(); return; } if (this.category) { var c = this.categories[this.category.id]; var subcats = c.c; } else { var c = null; var subcats = []; for (i in this.categories) { if (this.categories[i].level == 0) { subcats.push(i); } } } if (this.select) { this.elements.list.style.height = ''; if (subcats) { for (var i = 0; i < subcats.length; i++) { if (this.categories[subcats[i]].name == 'Więcej...' && (this.categories[subcats[i]].sub_active & 8) && !('c' in this.categories[subcats[i]])) { this.fetchSubcategories(subcats[i], bind(this.toggle, this, true)); return; } } var pathcat = c; var d, c2, iconName, icon = null; this.elements['path'].innerHTML = ''; while (pathcat) { if (pathcat.name != 'Więcej...') { if (pathcat.id != c.id) { d = SPAN({'style': 'white-space: nowrap'}, SPAN({'class': 'targeo-displaypoi-categorypath'}, pathcat.name), IMG({src: _TARGEO_GLOBALS.url+'i/skins/blue/controls/path.gif', 'style': 'vertical-align: middle; padding: 0 5px 2px 5px'})); } else { if (pathcat.level > 0) { c2 = pathcat; while (c2.level > 1 && c2.iconsetIndex === null) { var c2 = this.categories[c2.poi_category_id]; } if (c2.iconsetIndex !== null) { icon = IMG({src: _TARGEO_GLOBALS.url+'i/t.gif', alt: c2.name, title: c2.name, width: 16, height: 16, style: 'vertical-align: middle; margin-right: 3px; position: relative; top: -1px; background: url('+this.poiIconSetUrl+') no-repeat;background-position:-'+ (c2.iconsetIndex*16) +'px 0;'}); } else if ((iconName = c2.icon.substring(c2.icon.lastIndexOf('/')+1, c2.icon.lastIndexOf('.'))) in this.poiIconSet) { icon = IMG({src: _TARGEO_GLOBALS.url+'i/t.gif', alt: c2.name, title: c2.name, width: 16, height: 16, style: 'vertical-align: middle; margin-right: 3px; position: relative; top: -1px; background: url('+this.poiIconSetUrl+') no-repeat;background-position:-'+ (this.poiIconSet[iconName]*16) +'px 0;'}); } else { icon = IMG({src: c2.icon, alt: c2.name, title: c2.name, width: 16, height: 16, style: 'vertical-align: middle; padding-right: 3px; position: relative; top: -1px;'}); } } else { icon = SPAN(); } d = DIV({'class': 'targeo-displaypoi-categorypath'}, icon, pathcat.name); } this.elements['path'].insertBefore(SPAN({}, ' '), this.elements['path'].firstChild); this.elements['path'].insertBefore(d, this.elements['path'].firstChild); this.signals['select'].push(connect(d, 'onclick', this, partial(this.setCategory, pathcat.id))); } pathcat = this.categories[pathcat.poi_category_id]; } var d = SPAN({'style': 'white-space: nowrap'}, SPAN({'class': 'targeo-displaypoi-categorypath'}, 'Wszystkie kategorie'), this.category != null ? IMG({src: _TARGEO_GLOBALS.url+'i/skins/blue/controls/path.gif', 'style': 'vertical-align: middle; padding: 0 5px 2px 5px'}) : SPAN()); this.elements['path'].insertBefore(d, this.elements['path'].firstChild); this.signals['select'].push(connect(d, 'onclick', this, partial(this.setCategory, null))); this.elements['list'].innerHTML = ''; var dl = DIV(); for (var i = 0; i < subcats.length; i++) { if (this.categories[subcats[i]].name == 'Więcej...') { var subtree = this.categories[subcats[i]].c; } else { var subtree = [subcats[i]]; } for (j = 0; j < subtree.length; j++) { var csub = this.categories[subtree[j]]; d = DIV({'style': 'cursor: pointer;'}, csub.name); this.signals['select'].push(connect(d, 'onclick', this, partial(this.setCategory, csub.id))); this.signals['select'].push(connect(d, 'onmouseover', d, function(){this.style.backgroundColor='#C0CFFF';})); this.signals['select'].push(connect(d, 'onmouseout', d, function(){this.style.backgroundColor='#fff';})); dl.appendChild(d); } } this.elements['list'].appendChild(dl); if (this.category && (this.category.active & 8) && (this.category.level > 0 || this.category.id == 4000 || this.category.id == 3319)) { d = IMG({'src': 'i/ok.png', 'style': 'cursor: pointer'}); this.signals['select'].push(connect(d, 'onclick', this, partial(this.toggle, false))); this.signals['select'].push(connect(d, 'onmouseover', d, function(){this.src='i/ok_on.png';})); this.signals['select'].push(connect(d, 'onmouseout', d, function(){this.src='i/ok_on.png';})); this.elements['list'].appendChild(DIV({'style': 'text-align: center'}, d)); } showElement(this.expandElement); this.setControlPosition(); } else { this.fetchSubcategories(this.category.id, bind(this.toggle, this, true)); } } } else { hideElement(this.expandElement); } }, setControlPosition: function() { var controlDims = getElementDimensions(this.controlElement); if (controlDims.h > this.options.maxHeight) { var listOffset = getElementPosition(this.elements.list, this.controlElement); this.elements.list.style.height = (this.options.maxHeight-listOffset.y)+'px'; } var inputPos = getElementPosition(this.element); var inputDims = getElementDimensions(this.element); setElementPosition(this.expandElement, {x: inputPos.x+this.options.offset.x, y: inputPos.y+inputDims.h+this.options.offset.y}); inputPos = getElementPosition(this.element); setElementPosition(this.expandElement, {x: inputPos.x+this.options.offset.x, y: inputPos.y+inputDims.h+this.options.offset.y}); }, setCategory: function(category) { this.category = category ? this.categories[category] : null; var enabledCategory = this.category && (this.category.level > 0 || this.category.id == 4000 || this.category.id == 3319) && (parseInt(this.category.active) & 8) != 0; if (this.select) { if (enabledCategory) { this.button.innerHTML = this.category.name; } else { this.button.innerHTML = 'Wybierz kategorię'; } this.toggle(true); } if (enabledCategory) { var catdata = { id: this.category.id, name: this.category.name, level: this.category.level, active: this.category.active, attr: null, layout: null, layout_extended: null, icon: null }; var c1 = this.category; var c2 = null; var path = []; while (c1) { if (c2 == null && c1.level <= 1) { c2 = c1; } if (!catdata.attr && c1.attributes) { catdata.attr = c1.attributes; } if (!catdata.layout && c1.layout) { catdata.layout = c1.layout; } if (!catdata.layout_extended && c1.layout_extended && c1.layout_extended['mapa Targeo']) { catdata.layout_extended = c1.layout_extended['mapa Targeo']; } if (!catdata.icon && (!isUndefinedOrNull(c1.iconsetIndex) || c1.level <= 1)) { catdata.icon = c1; } path.unshift(c1.id); var c1 = this.categories[c1.poi_category_id]; } catdata.path = path; if (catdata.icon.iconsetIndex) { catdata.icon = {src: _TARGEO_GLOBALS.url+'i/t.gif', title: catdata.icon.name, width: 16, height: 16, a: {x: 8, y: 8}, bgoffset: catdata.icon.iconsetIndex*16}; } else if ((iconName = catdata.icon.icon.substring(catdata.icon.icon.lastIndexOf('/')+1, catdata.icon.icon.lastIndexOf('.'))) in this.poiIconSet) { catdata.icon = {src: _TARGEO_GLOBALS.url+'i/t.gif', title: catdata.icon.name, width: 16, height: 16, a: {x: 8, y: 8}, bgoffset: 16*this.poiIconSet[iconName]}; } else { catdata.icon = {src: catdata.icon.icon, title: catdata.icon.name, width: 16, height: 16, a: {x: 8, y: 8}}; } } else { var catdata = null; } signal(this, 'onChange', category, catdata); }, onKeyDown: function(event) { var keyString = event.key().string; if (!this.expanded && (keyString == 'KEY_ENTER' || keyString == 'KEY_ARROW_DOWN')) { event.stop(); this.toggle(true); } else if (this.expanded) { if (keyString == 'KEY_ESCAPE' || keyString == 'KEY_TAB') { this.toggle(false); } } } }; CheckboxControl = function(label, on, options) { this.options = setdefault(options || {}, { labelStyle: '', labelSwitch: 3, imgTitle: typeof(label) == 'string' ? label : '', disabled: false }); this.disabled = this.options.disabled; this.image = IMG({'src': 'i/checkbox-'+(on ? 'on' : 'off')+(this.disabled ? '-dis' : '')+'.png', style: 'position: relative; top: 1px; cursor: pointer;'+(label != '' ? 'padding-right: 3px;' : ''), title: this.options.imgTitle}); if (typeof(label) == 'string') { this.label = SPAN({style: (this.options.labelSwitch ? 'cursor: pointer;' : '')+this.options.labelStyle}, label); this.element = SPAN({}, this.image, this.label); } else { this.label = label; this.label.style.cursor = 'pointer'; this.element = SPAN({}, this.image); if (!label.parentNode) { this.element.appendChild(this.label); } } this.checked = on; this.signals = []; this.signals.push(connect(this.image, 'onmouseover', this, partial(this.onHover, true, true))); this.signals.push(connect(this.image, 'onmouseout', this, partial(this.onHover, false, true))); this.signals.push(connect(this.image, 'onclick', this, partial(this.onClick, true))); this.signals.push(connect(this.label, 'onmouseover', this, partial(this.onHover, true, false))); this.signals.push(connect(this.label, 'onmouseout', this, partial(this.onHover, false, false))); this.signals.push(connect(this.label, 'onclick', this, partial(this.onClick, false))); return this; }; CheckboxControl.prototype = { onHover: function(hover, img) { if (this.disabled) return; if (img || (!this.checked && this.options.labelSwitch & 1) || (this.checked && this.options.labelSwitch & 2)) { this.image.src = 'i/checkbox-' + (this.checked ? 'on' : 'off') + ((hover == true) ? '-hover' : '') + '.png'; } }, onClick: function(img, event) { if (this.disabled) return; if (img || (!this.checked && this.options.labelSwitch & 1) || (this.checked && this.options.labelSwitch & 2)) { this.checked = !this.checked; this.image.src = 'i/checkbox-' + (this.checked ? 'on' : 'off') + '.png'; } signal(this, 'onClick', this.checked, img, event); }, setValue: function(checked) { this.checked = checked; this.image.src = 'i/checkbox-' + (this.checked ? 'on' : 'off') + '.png'; }, enable: function() { this.disabled = false; this.image.src = 'i/checkbox-' + (this.checked ? 'on' : 'off') + '.png'; }, disable: function() { this.disabled = true; this.image.src = 'i/checkbox-' + (this.checked ? 'on' : 'off') + '-dis.png'; }, destroy: function() { forEach(this.signals, disconnect); } }; /* * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message * Digest Algorithm, as defined in RFC 1321. * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002. * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet * Distributed under the BSD License * See http://pajhome.org.uk/crypt/md5 for more info. */ /* * Configurable variables. You may need to tweak these to be compatible with * the server-side, but the defaults work in most cases. */ var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */ /* * These are the functions you'll usually want to call * They take string arguments and return either hex or base-64 encoded strings */ function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));} function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));} function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));} function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); } function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); } function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); } function str_b64(s) { return binl2b64(str2binl(s)); } /* * Perform a simple self-test to see if the VM is working */ function md5_vm_test() { return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72"; } /* * Calculate the MD5 of an array of little-endian words, and a bit length */ function core_md5(x, len) { /* append padding */ x[len >> 5] |= 0x80 << ((len) % 32); x[(((len + 64) >>> 9) << 4) + 14] = len; var a = 1732584193; var b = -271733879; var c = -1732584194; var d = 271733878; for(var i = 0; i < x.length; i += 16) { var olda = a; var oldb = b; var oldc = c; var oldd = d; a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936); d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586); c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819); b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330); a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897); d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426); c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341); b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983); a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416); d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417); c = md5_ff(c, d, a, b, x[i+10], 17, -42063); b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162); a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682); d = md5_ff(d, a, b, c, x[i+13], 12, -40341101); c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290); b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329); a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510); d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632); c = md5_gg(c, d, a, b, x[i+11], 14, 643717713); b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302); a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691); d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083); c = md5_gg(c, d, a, b, x[i+15], 14, -660478335); b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848); a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438); d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690); c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961); b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501); a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467); d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784); c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473); b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734); a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558); d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463); c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562); b = md5_hh(b, c, d, a, x[i+14], 23, -35309556); a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060); d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353); c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632); b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640); a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174); d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222); c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979); b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189); a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487); d = md5_hh(d, a, b, c, x[i+12], 11, -421815835); c = md5_hh(c, d, a, b, x[i+15], 16, 530742520); b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651); a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844); d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415); c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905); b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055); a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571); d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606); c = md5_ii(c, d, a, b, x[i+10], 15, -1051523); b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799); a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359); d = md5_ii(d, a, b, c, x[i+15], 10, -30611744); c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380); b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649); a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070); d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379); c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259); b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551); a = safe_add(a, olda); b = safe_add(b, oldb); c = safe_add(c, oldc); d = safe_add(d, oldd); } return Array(a, b, c, d); } /* * These functions implement the four basic operations the algorithm uses. */ function md5_cmn(q, a, b, x, s, t) { return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b); } function md5_ff(a, b, c, d, x, s, t) { return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); } function md5_gg(a, b, c, d, x, s, t) { return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); } function md5_hh(a, b, c, d, x, s, t) { return md5_cmn(b ^ c ^ d, a, b, x, s, t); } function md5_ii(a, b, c, d, x, s, t) { return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); } /* * Calculate the HMAC-MD5, of a key and some data */ function core_hmac_md5(key, data) { var bkey = str2binl(key); if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz); var ipad = Array(16), opad = Array(16); for(var i = 0; i < 16; i++) { ipad[i] = bkey[i] ^ 0x36363636; opad[i] = bkey[i] ^ 0x5C5C5C5C; } var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz); return core_md5(opad.concat(hash), 512 + 128); } /* * Add integers, wrapping at 2^32. This uses 16-bit operations internally * to work around bugs in some JS interpreters. */ function safe_add(x, y) { var lsw = (x & 0xFFFF) + (y & 0xFFFF); var msw = (x >> 16) + (y >> 16) + (lsw >> 16); return (msw << 16) | (lsw & 0xFFFF); } /* * Bitwise rotate a 32-bit number to the left. */ function bit_rol(num, cnt) { return (num << cnt) | (num >>> (32 - cnt)); } /* * Convert a string to an array of little-endian words * If chrsz is ASCII, characters >255 have their hi-byte silently ignored. */ function str2binl(str) { var bin = Array(); var mask = (1 << chrsz) - 1; for(var i = 0; i < str.length * chrsz; i += chrsz) bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32); return bin; } /* * Convert an array of little-endian words to a string */ function binl2str(bin) { var str = ""; var mask = (1 << chrsz) - 1; for(var i = 0; i < bin.length * 32; i += chrsz) str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask); return str; } /* * Convert an array of little-endian words to a hex string. */ function binl2hex(binarray) { var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; var str = ""; for(var i = 0; i < binarray.length * 4; i++) { str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) + hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF); } return str; } /* * Convert an array of little-endian words to a base-64 string */ function binl2b64(binarray) { var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var str = ""; for(var i = 0; i < binarray.length * 4; i += 3) { var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16) | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 ) | ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF); for(var j = 0; j < 4; j++) { if(i * 8 + j * 6 > binarray.length * 32) str += b64pad; else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F); } } return str; } var TargeoWizard = { Mapa: null, MapaLite: null, djson: new DJSON(), djson2: new DJSON(), type: 'vcard', picon: null, mapSize: {w: 400, h: 450}, signals: {'imageList': {}}, imageLists: { 'list_vcard_logo': { limit: 1, suffix_base: 'logoseo', suffix_view: 'logoseo', add_item: {w: 40, h: 40, n: 'logo', d: 'Dozwolone typy plików: jpg, gif, png.
Maksymalny rozmiar: 10MB.
Obraz zostanie automatycznie zmniejszony tak, by jego wymiary nie przekraczały 150 x 100 px.'} }, 'list_vcard_pic': { limit: 10, suffix_base: 'mini', suffix_view: 'midi2', add_item: {w: 60, h: 40, n: 'zdjęcie', d: 'Dozwolone typy plików: jpg, gif, png.
Maksymalny rozmiar: 10MB.
Obraz zostanie automatycznie zmniejszony tak, by jego wymiary nie przekraczały 800 x 800 px.'} } }, campaignTypes: ['vcard'], fieldConnects: {}, dataInitialized: false, drag: { _move: null, _down: null, _container: null, _mappos: null, _mapdims: null, _startcoords: null, start: function(drag, wizard, e) { if (wizard.step != 1) return; e.stop(); if (wizard.vcardHidePreviewTimeout) clearTimeout(wizard.vcardHidePreviewTimeout); wizard.vcardPreviewHide(); drag._startcoords = {x: wizard.picon.x, y: wizard.picon.y}; drag._container = getFirstElementByTagAndClassName('div', null, 'mapLite'); drag._target = e.target(); drag._offset = drag._diff( e.mouse().page, getElementPosition(drag._target, drag._container)); drag._startpos = getElementPosition(drag._target, drag._container); drag._startpage = e.mouse().page; drag._viewmappos = getElementPosition(drag._container); drag._mappos = getElementPosition('mapLite'); drag._mapdims = getElementDimensions('mapLite'); drag._move = connect(document, 'onmousemove', partial(drag._drag, drag, wizard)); drag._down = connect(document, 'onmouseup', partial(drag._stop, drag, wizard)); }, _offset: null, _target: null, _diff: function(lhs, rhs) { return new MochiKit.Style.Coordinates(parseInt(lhs.x) - parseInt(rhs.x), parseInt(lhs.y) - parseInt(rhs.y)); }, _drag: function(drag, wizard, e) { e.stop(); var page = e.mouse().page; if (page.x >= drag._mappos.x && page.y >= drag._mappos.y && page.x < drag._mappos.x+drag._mapdims.w && page.y < drag._mappos.y+drag._mapdims.h) { setElementPosition( drag._target, drag._diff(e.mouse().page, drag._offset)); } else { var x = 0; if (page.y < drag._mappos.y) { var cx = drag._startpage.x + Math.floor(((drag._startpage.y - drag._mappos.y)/(drag._startpage.y - page.y))*(page.x-drag._startpage.x)); if (cx < drag._mappos.x) { x = -1; } else if (cx > drag._mappos.x+drag._mapdims.w) { x = 1; } else { setElementPosition(drag._target, drag._diff({x: cx, y: drag._mappos.y}, drag._offset)); } } else if (page.y > drag._mappos.y + drag._mapdims.h) { var cx = drag._startpage.x + Math.floor(((drag._mappos.y+drag._mapdims.h - drag._startpage.y)/(page.y - drag._startpage.y))*(page.x-drag._startpage.x)); if (cx < drag._mappos.x) { x = -1; } else if (cx > drag._mappos.x+drag._mapdims.w) { x = 1; } else { setElementPosition(drag._target, drag._diff({x: cx, y: drag._mappos.y+drag._mapdims.h}, drag._offset)); } } else if (page.x < drag._mappos.x) { x = -1; } else { x = 1; } if (x == -1) { var cy = drag._startpage.y + Math.floor(((drag._mappos.x - drag._startpage.x)/(page.x - drag._startpage.x))*(page.y-drag._startpage.y)); setElementPosition(drag._target, drag._diff({x: drag._mappos.x, y: cy}, drag._offset)); } else if (x == 1) { var cy = drag._startpage.y + Math.floor(((drag._mappos.x+drag._mapdims.w - drag._startpage.x)/(page.x - drag._startpage.x))*(page.y-drag._startpage.y)); setElementPosition(drag._target, drag._diff({x: drag._mappos.x+drag._mapdims.w, y: cy}, drag._offset)); } } var pos = getElementPosition(drag._target, drag._mappos); pos.x += (!isUndefinedOrNull(wizard.icon.x) ? wizard.icon.x : 15) - 1; pos.y += (!isUndefinedOrNull(wizard.icon.y) ? wizard.icon.y : 10) - 1; wizard.picon = Mapa.getCoords(pos); signal(wizard, 'onPointSet', wizard.picon); }, _stop: function(drag, wizard, e) { disconnect(drag._move); disconnect(drag._down); var pos = getElementPosition(drag._target, drag._mappos); Mapa.destroyPoint('picon'); pos.x += (!isUndefinedOrNull(wizard.icon.x) ? wizard.icon.x : 15) - 1; pos.y += (!isUndefinedOrNull(wizard.icon.y) ? wizard.icon.y : 10) - 1; var c = Mapa.getCoords(pos); if (confirm('Czy chcesz zmienić lokalizację miejsca?')) { wizard.setPoint(c); } else { wizard.setPoint(drag._startcoords, true); } } }, init: function(options) { bindMethods(this); this.options = setdefault(options || {}, { c: false, x: 21.01160, y: 52.22992, z: 22, point: null, edit: false, correct: false, comment: false, webuser_consent: false }); if (this.options.edit || this.options.c || (this.options.point && this.options.point.metadata && this.options.point.metadata.name)) { //init lite if (!this.MapaLite) { this.MapaLite = true; var e1 = document.createElement('script'); e1.type = 'text/javascript'; e1.charset = 'utf-8'; e1.src = _MAP_PARAMS.url+'Targeo.html?vn=2_5&v=lite&k=NTUwYWU2YmQ5NzM1MDJjMzI4NjkwNDg2YzE3NWYxYjdiN2RkMWMxMQ==&f=init'+_MAP_PARAMS.add_params; document.getElementsByTagName('head')[0].appendChild(e1); return; } if (options.point && options.point.metadata.autosave && !options.confirm && !options.correct) { var getautosave = bind(function() { if (options.point.metadata.autosave.poi_id) { options.point.pid = options.point.metadata.autosave.poi_id; delete(options.point.metadata.autosave.poi_id); } if (options.point.metadata.autosave.geometry) { options.point.geometry = options.point.metadata.autosave.geometry; options.x = options.point.geometry.x; options.y = options.point.geometry.y; delete(options.point.metadata.autosave.geometry); } update(options.point.metadata, options.point.metadata.autosave); delete(options.point.metadata.autosave); this.init(options); }, this); if (window.location.search.match(/ra=save/)) { getautosave(); } else { this.showOverlay('Podczas ostatniej edycji pozostały niezapisane zmiany - czy chcesz je wykorzystać?', 2, [ getautosave, bind(function() { delete(options.point.metadata.autosave); this.init(options); }, this) ], {closebutton: 'yes', cancelbutton: 'no'}); } return; } showElement('data_form'); Mapa = this.MapaLite = new TargeoLite({e: 'mapLite', w: this.mapSize.w, h: this.mapSize.h, x: this.options.x, y: this.options.y, z: this.options.z, ev: {movezoom: this.onMapChange}, foot: 0}); var draggable = getFirstElementByTagAndClassName('div', null, 'mapLite'); connect(draggable, 'onmousedown', this, 'mapClick'); connect(draggable, 'onmouseup', this, 'mapClick'); this.liteZoomControls = []; var imgs = getElementsByTagAndClassName('img', null, 'mapLite'); for (var i = 0; i < imgs.length; i++) { if (imgs[i].src.indexOf('i/skins/blue/zoom/') != -1) { this.liteZoomControls.push(imgs[i]); } } this.category = this.options.c; if (this.category.attr && this.category.attr.length > 0 && !this.options.correct) { $('step2').style.display = 'block'; this.png24Change($('step3_img'), 'i/step3_n.png'); this.png24Change($('step4_img'), 'i/step4_n.png'); } //this.onUnloadSig = connect(window, 'onunload', this, 'onCancel'); } else { //full map if (!this.Mapa) { this.Mapa = true; var e1 = document.createElement('script'); e1.type = 'text/javascript'; e1.charset = 'utf-8'; e1.src = _MAP_PARAMS.url+'Targeo.html?vn=2_5&v=full&k=NTUwYWU2YmQ5NzM1MDJjMzI4NjkwNDg2YzE3NWYxYjdiN2RkMWMxMQ==&f=init&m=0'+_MAP_PARAMS.add_params; document.getElementsByTagName('head')[0].appendChild(e1); return; } Targeo.DisplayPOI.prototype.setPointData = function () { var pointData = { name: this.newPOIData.name, city: this.newPOIData.city_name, address: this.newPOIData.street_name+(this.newPOIData.street_house ? ' '+this.newPOIData.street_house : ''), owner_id: 1 } var form = FORM({'method':'post', 'action':_BASE_HREF+'poi/new/'+this.newPOIData.coords.x+','+this.newPOIData.coords.y+','+this.newPOIData.category, 'style':'position:absolute; visibility:hidden;'}, TEXTAREA({'name': 'pointdata', 'value': serializeJSON(pointData)})); document.body.appendChild(form); this.newPOIData = {}; form.submit(); }; Targeo.DisplayPOI.prototype.newPOIPosition = function (obj, MochiKitEventObject) { var coords = null; if (obj && typeof(obj.coords) != 'undefined') { coords = obj.coords; } else if (MochiKitEventObject) { coords = this.Map.page2gps(MochiKitEventObject.mouse().page); } this.hideLabel(); if (this.Map.zoomCurrent > 20 || !coords) { this.zoomToSubmit(coords, MochiKitEventObject && MochiKitEventObject.mouse ? MochiKitEventObject.mouse().page : null); return; } var icon = Targeo.Config.IconTango.I3; var aPoint = new Targeo.Point(coords, icon); this.newPOIData['point'] = aPoint; this.newPOIData.coords = {x: parseFloat(aPoint.coords.x), y: parseFloat(aPoint.coords.y)}; this.getPointAddress(aPoint); }; Targeo.FTSLib.ResultList.initialize = function(items) { return new Targeo.ResultList(items, { onmouseenter: function(obj) { obj.listMouseEnter(); }, onmouseleave: function(obj) { obj.listMouseLeave(); }, onmousedown: function(obj) { obj.listMouseDown(); }, onclick: function(obj) { obj.listMouseClick(); obj.postListMouseClick(obj.fts.map.zoomCurrent); } }, [/*{name: 'submitPOI'}, */{name: 'contextMenu'}], { formatFunction: bind(function(obj) { return obj.listFormatter(); }, this), toolObjectFunction: bind(function(obj) { return typeof (obj.listToolObject) == 'function' ? obj.listToolObject() : obj; }, this), elementsPerPage: 20, pagingContainer: 'targeo-fts-result_paging', pregenerateHTML: true, hoverItemClass: _TARGEO_BROWSER.browser == 'ipad' ? null : 'targeo_resultlist_item_hover' }); }; Targeo.FTSLib.Place.prototype.resultListTools = [{name: 'contextMenu'}, {label: ''+_ML['ContextMenu_SubmitPOI'], handler: bind(function(obj, event){this.Mapa.modules.DisplayPOI.newPOIPosition(obj, event);}, this)}]; Targeo.FTSLib.Place.prototype._createMapPoint = function(entry) { return this.map.pointAdd('searchresult_address', entry.xy, { id: 'TargeoPoint_' + entry.id, zIndex: entry.zIndex ? entry.zIndex: 520, //520, icon: entry.icon, cursor: 'hand', name: entry.name, description: entry.description, sendmail: 1, fGetContextMenu: this.setContextMenu, balloonParams: { title: entry.name, body: '' + entry.name + '' + (isUndefinedOrNull(entry.description) ? '': ', ' + entry.description), size: this.balloonSize, icon: Targeo.Base.getDynSrc('i/skins/blue/window/hicon_search.png'), iconSize: { w: 36, h: 30, o: { x: 9, y: -15 } }, footerLinks: ['submitPOI'] }, modSpecific: { FindRoute: { data: entry.place ? { 'city': entry.place, 'street': entry.street, 'house': entry.number, 'community': entry.community, 'province': entry.province, 'country': 'PL' }: { 'name': entry.name }, revgeo: 0 } } }); }; var myMapOptions = { tileMode: 'pl', mapModeName: 'drag', autoSize: false, useCookie: 0, zoomCurrent: this.options.z, coordsCenter: {x:this.options.x, y:this.options.y}, modArguments: {"modDisclaimerControl":{"showButtons":false},"modDisplayPOI":{"disabled":0,"qs":true,"categoryPath":[],"submitPOI":true},"modZoomControl":{"visible":true,"showScale":true},"modSearch":{"visible":false,"showHint":false},"modFTS":{"visible":true,"disabled":false},"modGeoLocation":{"visible":false},"modToolbar":{"visible":true,"topbar":false,"topbarSwitch":false,"modeEnable":["drag","zoom-selection","|","search-form","display-poi"]},"modMoreTools":{"disabled":true}}, palette: 'Targeo1512' }; showElement('location_form_new'); $('site').style.display = 'block'; this.Mapa = new Targeo.Map('mapContainer', myMapOptions); connect(this.Mapa, 'onInit', this, function() { Targeo.ResultList.predefTools.submitPOI = {label: ''+_ML['ContextMenu_SubmitPOI'], handler: bind(function(obj, event){this.newPOIPosition(obj, event);}, this.Mapa.modules.DisplayPOI)}; this.Mapa.modules['PointManager'].registerFooterLink('submitPOI', { 'name': _ML['ContextMenu_SubmitPOI'], 'iconUrl': _TARGEO_GLOBALS.url+'i/icons/tool/submit-poi.png', 'width': 160, 'minwidth': 194, 'handler': bind(function(obj, event){this.newPOIPosition(obj, event);}, this.Mapa.modules.DisplayPOI), 'active': true }); this.Mapa.modeEnable('display-poi'); this.Mapa.modules['LMB'].activateLMBAction('SubmitPOI'); this.lmbSignal = connect(this.Mapa, 'onLMBClick', this, function(requestorName, event) { if (requestorName == 'SubmitPOI') { if (typeof(event.mouse) == 'function') { event.stop(); coords = this.Mapa.page2gps(event.mouse().page); } else { coords = MochiKitEventObject.coords; } setTimeout(partial(this.Mapa.modules['DisplayPOI'].newPOIPosition, {'coords': coords}, event), 100); } }); }); connect(this.Mapa, 'onDisplayPOIInit', this, function() { var c = null; for (var i in this.Mapa.modules['DisplayPOI'].POICategories) { c = this.Mapa.modules['DisplayPOI'].POICategories[i]; if (!(c.sub_active & 8)) { c.sub_active = 0; } else if (!(c.sub_active & 1)) { c.sub_active |= 1; } } this.Mapa.modules['DisplayPOI'].setCategorySelect(); }); this.Mapa.initialize(); } if (_TARGEO_GLOBALS.captcha) { this.showCaptcha('init'); return; } _TARGEO_GLOBALS.captcha = false; this.campaign = this.options.point || {}; this.resetImageList(); if (this.options.correct) { $('button_next').style.display = 'none'; $('button_save').style.display = 'inline'; } else { connect('step1', 'onclick', this, partial(this.switchStep, 1)); connect('step1', 'onmouseenter', this, partial(this.onStepHover, 1, true)); connect('step1', 'onmouseleave', this, partial(this.onStepHover, 1, false)); connect('step2', 'onclick', this, partial(this.switchStep, 2)); connect('step2', 'onmouseenter', this, partial(this.onStepHover, 2, true)); connect('step2', 'onmouseleave', this, partial(this.onStepHover, 2, false)); connect('step3', 'onclick', this, partial(this.switchStep, 3)); connect('step3', 'onmouseenter', this, partial(this.onStepHover, 3, true)); connect('step3', 'onmouseleave', this, partial(this.onStepHover, 3, false)); connect('step4', 'onclick', this, partial(this.switchStep, 4)); connect('step4', 'onmouseenter', this, partial(this.onStepHover, 4, true)); connect('step4', 'onmouseleave', this, partial(this.onStepHover, 4, false)); } connect('button_next', 'onclick', this, partial(this.switchStep, null)); connect('button_next', 'onmouseover', this, partial(this.png24Change, $('button_next'), 'i/next_on.png')); connect('button_next', 'onmouseout', this, partial(this.png24Change, $('button_next'), 'i/next.png')); connect('button_save', 'onclick', this, partial(this.save, null)); connect('button_save', 'onmouseover', this, function(){$('button_save').src = this.options.edit ? 'i/editsave_on.png' : 'i/save_on_b.png';}); connect('button_save', 'onmouseout', this, function(){$('button_save').src = this.options.edit ? 'i/editsave.png' : 'i/save_b.png';}); connect('button_cancel', 'onclick', this, 'onCancel'); connect('button_cancel', 'onmouseover', this, function(){$('button_cancel').src='i/cancel_on_b.png';}); connect('button_cancel', 'onmouseout', this, function(){$('button_cancel').src='i/cancel_b.png';}); connect('button_prev', 'onclick', this, 'onPrevButton'); connect('button_prev', 'onmouseover', this, partial(this.png24Change, $('button_prev'), 'i/prev_on_b.png')); connect('button_prev', 'onmouseout', this, partial(this.png24Change, $('button_prev'), 'i/prev_b.png')); connect('button_finish', 'onclick', this, partial(this.switchStep, null)); connect('button_finish', 'onmouseover', this, partial(this.png24Change, $('button_finish'), 'i/finish_on.png')); connect('button_finish', 'onmouseout', this, partial(this.png24Change, $('button_finish'), 'i/finish.png')); /*connect('field_city', 'onchange', this, 'getAddress'); connect('field_city', 'onkeydown', this, partial(this.blurOnEnter, 'field_city')); connect('field_address', 'onchange', this, 'getAddress'); connect('field_address', 'onkeydown', this, partial(this.blurOnEnter, 'field_address')); connect('field_gps', 'onchange', this, 'moveMap'); connect('field_gps', 'onkeydown', this, partial(this.blurOnEnter, 'field_gps'));*/ connect('button_setlocation', 'onmouseover', this, function(){$('button_setlocation').src = 'i/setlocation_on.png';}); connect('button_setlocation', 'onmouseout', this, function(){$('button_setlocation').src = 'i/setlocation.png';}); //connect('vcard_changeposition_link', 'onclick', this, partial(this.vcardPositionEditorToggle, null)); this.vcardPositionEditor = false; this.step = 1; this.png24fix(document.body); $('field_city').value = ''; $('field_address').value = ''; $('field_gps').value = ''; this.boundFields = {}; /**/ if (this.options.edit || this.options.c || this.options.correct || (this.options.point && this.options.point.metadata)) { this.fillCampaignData('vcard'); if (typeof(Mapa) !== 'undefined') { this.setPoint({x: this.options.x, y: this.options.y}, true); } //this.vcardPositionEditorToggle(false); if (!this.options.edit) { //this.switchStep(); } else { $('button_save').src = 'i/editsave.png'; //$('button_save').style.display = 'inline'; } } else { removeElementClass('step3', 'next'); addElementClass('step3', 'inactive'); this.png24Change($('step3_img'), 'i/step2_ia.png'); removeElementClass('step4', 'next'); addElementClass('step4', 'inactive'); this.png24Change($('step4_img'), 'i/step3_ia.png'); $('button_next').style.display = 'none'; } $('site').style.display = 'block'; if (this.options.comment !== false) { $('comment_form').style.display = 'block'; var commtoggle = $('comment_toggle'); if (commtoggle) { connect(commtoggle, 'onclick', this, partial(this.toggleComments, null)); } this.toggleComments(false); if ($('step3')) { removeElementClass('step3', 'next'); addElementClass('step3', 'inactive'); this.png24Change($('step3_img'), 'i/step2_ia.png'); } $('button_next').style.display = 'none'; $('button_save').style.display = 'inline'; } if ('confirm' in this.options && !this.options.confirm) { this.showOverlay('Dane miejsca zostały już potwierdzone. Dziękujemy.'); } else if (window.location.search.match(/ra=save/) || this.options.confirm) { if (this.options.confirm) { var companyFields = ['name', 'city', 'address', 'postal_code', 'phone']; var metadata = this.campaign.metadata; for (var i = 0; i < companyFields.length; i++) { if (!metadata.company[companyFields[i]] && metadata[companyFields[i]]) { metadata.company[companyFields[i]] = $('field_vcard_c_'+companyFields[i]).value = metadata[companyFields[i]]; } } } if (this.options.confirm && this.options.webuser_consent) { var i = 0; do { this.switchStep(); i++; } while (i < 4 && this.step < 4); } else { this.save(); } } else { this.autoSave(true); } $('preloader').style.display = 'none'; }, fillCampaignData: function (type) { this.dataInitialized = true; if (type) { this.campaign.type = type; } if (typeof(this[this.campaign.type+'FillCampaignData']) == 'function') { this[this.campaign.type+'FillCampaignData'](); } }, save: function() { if (this.options.edit && !this.checkStep()) { return; } this.showOverlay(' Proszę czekać...', false); var specFunc = this[this.type+'Save']; if (typeof(specFunc) == 'function') { specFunc(); } var params = {}; if (this.options.comment !== false && $('field_vcard_modreply').value) { params.reply = $('field_vcard_modreply').value; params.replyCorrId = this.options.comment; /*if (this.campaign.metadata['_comments'][this.options.comment].corr_id) { params.replyCorrId = this.campaign.metadata['_comments'][this.options.comment].corr_id; }*/ } params.m = serializeJSON(this.campaign.metadata); params.c = this.category.id; params.cid = this.campaign.id ? this.campaign.id : 0; if (this.campaign.poi_id) { params.pid = this.campaign.poi_id; } if (this.campaign.hash) { params.hash = this.campaign.hash; } params.g = this.campaign.geometry; if (this.options.confirm) { params.confirm = 1; } if (this.options.correct) { params.correct = 1; } if (this.options.webuser_consent) { params.webuser_consent = serializeJSON({personal_data: this.webuserConsentDataCheckbox.checked, marketing: this.webuserConsentMarketingCheckbox.checked}); } var url = _BASE_HREF+'index.html'; this.djson.setCallback(this.onSave, this); this.djson.post(url, {'a': 'poi_save'}, params); }, onSave: function(ret) { if (ret.ok == -1) { window.location = window.location.protocol+'//'+window.location.hostname+window.location.pathname+'?ra=save&login'; return; } else if (!this.options.correct && this.campaign.metadata.owner_id && ret.ok) { this.showFinalScreen(ret.msg, this.options.nick !== false); } else { this.showOverlay(typeof(ret.msg) == 'string' ? ret.msg : ret.msg.join(' '), true, ret.ok ? bind(function(cid){ if (cid && !this.campaign.id) { this.campaign.id = cid; } disconnect(this.onUnloadSig); if (!this.options.correct && this.options.nick !== false) { window.location = _BASE_HREF+'index.html?a=poi_cancel&cid='+this.campaign.id+'&f=s'; } else { window.location = _BASE_HREF+'/poi/'; //window.close(); } }, this, ret.cid) : null); } if (ret.ok && this.campaign.hash && this.campaign.hash.length == 24) { var im = new Image(); im.src = location.protocol+'//s11.targeo.pl/panel/poisave/?hash='+this.campaign.hash+'&pid='+(this.campaign.poi_id ? this.campaign.poi_id : this.campaign.cid)+'&uu='+(document.cookie.match(new RegExp('(^| )' + 'U' + '=([^;]+)'))[2]); } }, showFinalScreen: function(msg, close) { if (!this.finalMap) { this.finalMap = true; var e1 = document.createElement('script'); e1.type = 'text/javascript'; e1.charset = 'utf-8'; e1.src = _MAP_PARAMS.url+'Targeo.html?vn=2_5&v=full&k=NTUwYWU2YmQ5NzM1MDJjMzI4NjkwNDg2YzE3NWYxYjdiN2RkMWMxMQ==&f=TargeoWizard.showFinalScreen&e=map_point_view&m=0'+_MAP_PARAMS.add_params; document.getElementsByTagName('head')[0].appendChild(e1); if (typeof(msg) == 'string') msg = [msg]; $('final_screen_h1').innerHTML = msg[0]; if (msg.length == 2) { $('final_screen_h2').innerHTML = msg[1]; } var buttons = getElementsByTagAndClassName('img', null, 'nextbar_c'); for (var i = 0; i < buttons.length; i++) { buttons[i].style.display = close && buttons[i].id == 'button_finish' ? 'inline' : 'none' } var steps = getElementsByTagAndClassName('div', null, 'steps'); for (var i = 0; i < steps.length; i++) { steps[i].style.display = 'none'; } return; } this.step = 5; var myMapOptions = { mapModeName: 'drag', autoSize: false, useCookie: 0, zoomCurrent: 19, coordsCenter: {x: parseFloat(this.campaign.geometry.x), y: parseFloat(this.campaign.geometry.y)}, modArguments: {"modDisplayPOI":{"disabled":false,"qs":true,"categoryPath":[],"linked_poi":{id: this.campaign.poi_id ? this.campaign.poi_id : this.campaign.id, name: this.campaign.metadata.name, x: this.campaign.geometry.x, y: this.campaign.geometry.y, poi_category_id: this.category.path, show_label: 0, grp: 0}},"modGeoLocation":{"disabled":true}}, palette: 'Targeo1512' }; this.finalMap = new Targeo.Map('map_point_view', myMapOptions); var cxy = this.finalMap.gps2xy(this.finalMap.coordsCenter); cxy.y += 130; this.finalMap.coordsCenter = this.finalMap.xy2gps(cxy); this.finalMap.initialize(); var mainbox = $('final_screen').parentNode; for (var i = 0; i < mainbox.childNodes.length; i++) { if (mainbox.childNodes[i].tagName) { if (mainbox.childNodes[i].id == 'final_screen') { showElement(mainbox.childNodes[i]); } else { hideElement(mainbox.childNodes[i]); } } } this.hideOverlay(); }, onPrevButton: function() { }, bindField: function(fieldId, object, item) { this.boundFields[fieldId] = {o: object, i: item}; $(fieldId).value = object[item] = object[item] ? this.trim(this.htmlDecode(object[item])) : ''; this.fieldConnects[fieldId] = []; this.fieldConnects[fieldId].push(connect(fieldId, 'onchange', this, function(){ object[item] = this.trim($(fieldId).value); this.autoSave(); })); this.fieldConnects[fieldId].push(connect(fieldId, 'onkeyup', this, 'vcardPreviewUpdate')); }, toggleField: function(fieldId, enable) { var field = $(fieldId); field.disabled = !enable; classFunc = enable ? removeElementClass : addElementClass; classFunc(field.parentNode, 'disabled350'); }, limitTextarea: function(id, limit) { var ta = $('field_'+id); var left = $('left_'+id); if (ta.value.length > limit) { ta.value = ta.value.substr(0, limit); } left.innerHTML = Math.max(0, limit-ta.value.length); }, resetImageList: function(listId) { if (listId) { var list = this.imageLists[listId]; if (!list) return; for (var i = list.count-1; i >= 0; i--) { this.removeImageItem(list.ids[i], listId, false); } this.removeImageAddItem(listId); MochiKit.Base.update(this.imageLists[listId], {count: 0, ids: [], src: [], dims: []}); } else { for (var i in this.imageLists) { this.resetImageList(i); } } }, createImageAddItem: function(listId) { var list = this.imageLists[listId]; if (!$(listId+'_add') && list.count < list.limit) { var padding = Math.max(0, Math.floor((list.add_item.h-30)/2)); var additem = SPAN({'class': 'image_thumblist_itemadd', 'style': 'width: '+list.add_item.w+'px; height: '+(list.add_item.h+2-padding)+'px; padding-top: '+padding+'px', 'id': listId+'_add'}); additem.innerHTML = 'wstaw
'+list.add_item.n; $(listId).appendChild(additem); this.signals.imageList[listId+'_add'] = connect(additem, 'onclick', this, partial(this.chooseNewImageItem, listId)); } }, removeImageAddItem: function(listId) { if ($(listId+'_add')) { disconnect(this.signals.imageList[listId+'_add']); removeElement(listId+'_add'); } }, chooseNewImageItem: function(listId) { var id = listId.substr(5); var form = ['
']; form.push('
'+this.imageLists[listId].add_item.d+'
'); form.push('
'); form.push(''); form.push('
'); form.push('
'); this.showOverlay(form.join(''), true, null, {width: 360, closebutton: 'qcancel'}); this.createFileInput('field_'+id, this.sendFile); this.setFileInputWidth('field_'+id); $('form_'+id).reset(); }, createImageItem: function(id, listId, img, change) { var list = this.imageLists[listId]; var ext = img.url.lastIndexOf('.'); var thumb = img.url.substr(0, ext)+(list.suffix_base ? '-'+list.suffix_base : '')+img.url.substr(ext); $(listId).insertBefore( SPAN({'class': 'image_thumblist_item', 'id': id}, IMG({'id': id+'_thumb', 'src': _TARGEO_GLOBALS.url+'i/cache/'+thumb, 'class': 'image_thumblist_itemthumb'}), IMG({'id': id+'_view', 'src': 'i/image_view.png', 'class': 'image_thumblist_itemcontrol', 'style': 'bottom: 2px'}), IMG({'id': id+'_remove', 'src': 'i/image_remove.png', 'class': 'image_thumblist_itemcontrol', 'style': 'top: 1px'}) ), $(listId+'_add') ); if (list.suffix_base == list.suffix_view) { $(id+'_view').style.visibility = 'hidden'; } list.count++; list.src.push(img.url); list.dims.push(img.w && img.h ? {w: img.w, h: img.h} : null); list.ids.push(id); this.signals.imageList[id] = []; this.signals.imageList[id].push(connect(id+'_thumb', 'onclick', this, partial(this.viewImage, id, img.url, list.suffix_view))); this.signals.imageList[id].push(connect(id+'_view', 'onclick', this, partial(this.viewImage, id, img.url, list.suffix_view))); this.signals.imageList[id].push(connect(id+'_remove', 'onclick', this, partial(this.removeImage, id, listId, img.url))); this.imageLists[id] = null; if ($(listId+'_add') && img.w && img.h) { var sizef = (img.w >= img.h ? img.w : img.h) / 80; var padding = Math.max(0, Math.floor((Math.ceil(img.h/sizef)-30)/2)); setElementDimensions(listId+'_add', {w: Math.ceil(img.w/sizef)+18, h: Math.ceil(img.h/sizef)-padding+2}); $(listId+'_add').style.paddingTop = padding+'px'; } if (list.count == list.limit) { this.removeImageAddItem(listId); } if (change) { this.imageListChange(listId); } }, removeImageItem: function(id, listId, change) { forEach(this.signals.imageList[id], disconnect); var list = this.imageLists[listId]; for (var i = 0; i < list.count; i++) { if (list.ids[i] == id) { list.ids.splice(i, 1); list.src.splice(i, 1); list.dims.splice(i, 1); } } list.count--; delete(this.imageLists[id]); this.imageLists[id] = null; removeElement(id); if (list.count < list.limit) { this.createImageAddItem(listId); } if (change) { this.imageListChange(listId); } }, imageListChange: function(listId) { var list = listId.split('_'); if (typeof(this[list[1]+'ImageListChange']) == 'function') { this[list[1]+'ImageListChange'](list[2]); } this.autoSave(); }, viewImage: function(id, src, suffix) { var ext = src.lastIndexOf('.'); src = src.substr(0, ext)+(suffix ? '-'+suffix : '')+src.substr(ext); if (!this.imageLists[id]) { this.showOverlay('Ładuję obraz...'); var img = new Image(); this.signals.imageList[id].push(connect(img, 'onload', this, partial(function(im){this.showOverlay('', true, null, {width: Math.max(300, im.width+20)});}, img))); img.src = _TARGEO_GLOBALS.url+'i/cache/'+src; this.imageLists[id] = img; } else { this.showOverlay('', true, null, {width: Math.max(300, this.imageLists[id].width+20)}); } }, removeImage: function(id, listId, src) { if (this.campaign.id) { this.showOverlay(' Usuwam obraz...', false); var params = {'cid': this.campaign.id, 'img': src, 'i': listId.substr(5)}; var url = './index.html'; this.logStat('removeimage', {'t': listId.substr(5)}); this.djson.setCallback(this.onImageRemove, this); this.djson.post(url, {'a': 'poi_removeimage'}, params, [id, listId]); } else { this.onImageRemove({removed: true}, id, listId); } }, onImageRemove: function(ret, id, listId) { if (ret.removed) { this.removeImageItem(id, listId, true); this.hideOverlay(); } else { this.showOverlay(ret.msg, true); } }, blurOnEnter: function(elem, e) { if (e.key().string == 'KEY_ENTER') { $(elem).blur(); } }, createFileInput: function(id, handler) { var fakeFileUpload = document.createElement('div'); fakeFileUpload.className = 'fakefile'; fakeFileUpload.style.width = '352px'; var inp = document.createElement('input'); inp.value = ''; inp.id = id+'fakefile_input'; fakeFileUpload.appendChild(inp); var button = IMG({'id': id+'_browse_file_button', 'src': 'i/browse_b.png', 'style': 'cursor: pointer; vertical-align: top; margin-left: 3px'}); fakeFileUpload.appendChild(button); var x = $(id); x.className = 'hidden'; x.style.cssText = 'margin: 0px; padding: 0px; width: 350px; height: 28px;'; var clone = fakeFileUpload.cloneNode(true); x.parentNode.appendChild(clone); x.relatedElement = clone.getElementsByTagName('input')[0]; if (!this.signals['fileinput']) { this.signals['fileinput'] = {}; } this.signals['fileinput'][id] = []; this.signals['fileinput'][id].push(connect(x, 'onchange', this, partial(function(elem, func){elem.relatedElement.value = elem.value; if (elem.value) func();}, x, bind(handler, this, id)))); this.signals['fileinput'][id].push(connect(x, 'onmouseout', this, partial(function(elem){elem.relatedElement.value = elem.value;}, x))); this.signals['fileinput'][id].push(connect(id+'_browse_file_button', 'onmouseover', $('browse_file_button'), function(){this.src='i/browse_on_b.png';})); this.signals['fileinput'][id].push(connect(id+'_browse_file_button', 'onmouseout', $('browse_file_button'), function(){this.src='i/browse_b.png';})); if (!this.fileInputs) { this.fileInputs = {}; } this.fileInputs[id] = {elem: x, w: 350}; }, setFileInputWidth: function(id) { var input = this.fileInputs[id]; if (!input) return false; var width = input.w; input = input.elem; var dims, diff, size = null; var bestsize = {diff: width, size: 0}; dims = getElementDimensions(input); if (dims.w > 0) { input.size = size = Math.round((width - 120)/6); do { if (diff != null) { bestsize['diff'] = diff; bestsize['size'] = size; if (diff > 0) { size++; } else if (diff < 0) { size--; } input.size = size; } dims = getElementDimensions(input); diff = width - dims.w; } while (Math.abs(diff) < bestsize['diff']); if (bestsize['size']) { if (bestsize['diff'] > 0) { bestsize['size']++; } input.size = bestsize['size']; } input.style.width = width+'px'; return true; } else { return false; } }, destroyFileInput: function(id) { forEach(this.signals['fileinput'][id], disconnect); delete(this.signals['fileinput'][id]); }, sendFile: function(id) { if ($(id).value) { this.destroyFileInput(id); id = id.substr(6); var list = this.imageLists['list_'+id]; if (list.limit == 0 || list.count < list.limit) { this.logStat('uploadimage', {'t': id}); $('form_'+id).action = './index.html?a=poi_uploadimage&i='+id+(this.campaign.id ? '&cid='+this.campaign.id : ''); this.checkUploadInterval = setInterval(bind(function() { var title = $('upload_target').contentDocument.title; var error = title.match(/^([45]\d\d) /); if (error) { error = parseInt(error[1]); switch (error) { case 413: error = 'Przesłany plik przekracza dopuszczalny rozmiar.'; break; default: error = 'Wystąpił nieokreślony błąd'; break; } this.onIconUploaded({e: error}); } }, this), 100); $('form_'+id).submit(); this.showOverlay('Wysyłam plik...', false); } else { this.showOverlay('Limit obrazów został wykorzystany.', true); } } }, onIconUploaded: function(json) { clearInterval(this.checkUploadInterval); if (json.f) { var f = json.f; if (this.imageLists['list_'+json.a].limit > 1) { this.createImageItem('item_'+json.a+new Date().getTime()+'_'+(Math.random()*Math.random()).toString().substr(2), 'list_'+json.a, f, true); } else { this.createImageItem('item_'+json.a, 'list_'+json.a, f, true); } if (json.cid && !this.campaign.id) { this.campaign.id = json.cid; } this.hideOverlay(); } else { this.showOverlay(json.e, true); } }, setIcon: function(icon) { if (icon) { this.icon = merge(icon); } else { this.icon = null; $('field_city').value = ''; $('field_address').value = ''; $('field_gps').value = ''; } if (this.picon) { Mapa.destroyPoint('picon'); if (this.icon != null) { this.setPoint(this.picon, true); } else { this.picon = null; } } else if (this.icon != null) { this.setPoint(Mapa.opts().gps, true); } }, autoSave: function(now) { if (this.options.correct) return false; if (this.autoSaveTimeout) { clearTimeout(this.autoSaveTimeout); } if (now !== true) { this.autoSaveTimeout = setTimeout(bind(this.autoSave, this, true), 500); return; } var cmpstr = bind(function(a, b) { if (isUndefinedOrNull(a) || a === false) a = ''; if (isUndefinedOrNull(b) || b === false) b = ''; return this.trim(a) == this.trim(b); }, this); data = update(merge(this.campaign.metadata), {'geometry': this.picon ? this.picon : this.campaign.geometry, 'poi_id': this.campaign.poi_id}); var dirty = false; if (this.picon && (!this.campaign.geometry || Math.round(this.campaign.geometry.x*1000) != Math.round(this.picon.x*1000) || Math.round(this.campaign.geometry.y*1000) != Math.round(this.picon.y*1000))) { dirty = true; } else if (this.category && (!this.options.c || this.category.id != this.options.c.id)) { dirty = true; } else { var metadata = this.campaign.metadata; for (var i in metadata) { if (i[0] == '_' || i[i.length-1] == '_') continue; if (i == 'description') { dirty = !cmpstr(this.htmlDecode(metadata[i].replace(/<(?:.|\n)*?>/gm, '')), this.htmlDecode(originaldata[i].replace(/<(?:.|\n)*?>/gm, ''))); } else if (typeof(metadata[i]) == 'string' && i != 'phone_parsed') { dirty = !cmpstr(metadata[i], originaldata[i]); } else if (i == 'attr') { for (var j in metadata.attr) { if (!('attr' in originaldata)) { if (metadata.attr[j]) { dirty = true; } } else if (typeof(metadata.attr[j]) == 'string') { dirty = !cmpstr(metadata.attr[j], originaldata.attr[j]); } else if (metadata.attr[j] != originaldata.attr[j]) { dirty = true; } if (dirty) break; } } else if (typeof(metadata[i]) == 'object' && 'length' in metadata[i] && i != 'phone[]') { if ((!(i in originaldata) && metadata[i].length > 0) || ((i in originaldata) && metadata[i].length != originaldata[i].length)) { dirty = true; break; } else { for (var j = 0; j < metadata[i].length; j++) { if (findValue(originaldata[i], metadata[i][j]) == -1) { dirty = true; break; } } } } else if (i == 'workhours[][]') { for (var j in metadata[i]) { if (j != 'workdays') { if (!originaldata['workhours[]'] || !(j in originaldata['workhours[]']) || originaldata['workhours[]'][j] == null) { if (metadata[i][j]['from'] || metadata[i][j]['to']) { dirty = true; break; } } else if ((metadata[i][j]['from'] + '-' + metadata[i][j]['to']).replace(/^ - $/, '') != originaldata['workhours[]'][j].replace(/\s/g, '')) { dirty = true; break; } } } } if (dirty) { break; } } } if (this.campaign.id || dirty) { var params = {'a': 'poi_autosave'}; if (this.campaign.id) { params.cid = this.campaign.id; } if (this.campaign.hash) { params.hash = this.campaign.hash; } if (this.campaign.poi_id) { params.pid = this.campaign.poi_id; } if (data) { if (!data.poi_id) delete(data.poi_id); if (!data.geometry) delete(data.geometry); } this.djson2.setCallback(function(ret) { if (ret.cid) this.campaign.id = ret.cid; }, this); this.djson2.post(_BASE_HREF+'index.html', params, {'data': dirty ? data : null}); } return dirty; }, initAddressFields: function(city, address, postal_code) { var parts = ['city', 'address', 'postal_code']; this.address = {fields: {}, timeout: null, changed: false}; for (var i = 0; i < parts.length; i++) { this.address.fields[parts[i]] = arguments[i]; this.address[parts[i]] = arguments[i].value; if ((this.address[parts[i]] || originaldata[parts[i]]) && this.address[parts[i]] != originaldata[parts[i]]) { this.address.changed = true; } connect(arguments[i], 'onfocus', this, partial(function(name, field){this.address[name] = field.value; clearTimeout(this.address.timeout);}, parts[i], arguments[i])); connect(arguments[i], 'onblur', this, partial(this.onAddressFieldBlur, parts[i])); connect(arguments[i], 'onkeydown', this, partial(this.blurOnEnter, arguments[i])); } if (this.address.changed) { this.getAddress(); } /*this.address = {'fields': {'city': city, 'address': address, 'postal_code': postal_code}, 'city': city.value, 'address': address.value, 'postal_code': address.postal_code, 'changed': false, 'timeout': null}; connect(city, 'onfocus', this, partial(function(field){this.address['city'] = field.value; clearTimeout(this.address.timeout);}, city)); connect(city, 'onblur', this, partial(this.onAddressFieldBlur, 'city')); connect(city, 'onkeydown', this, partial(this.blurOnEnter, city)); connect(address, 'onfocus', this, partial(function(field){this.address['address'] = field.value; clearTimeout(this.address.timeout);}, address)); connect(address, 'onblur', this, partial(this.onAddressFieldBlur, 'address')); connect(address, 'onkeydown', this, partial(this.blurOnEnter, address)); connect(postal_code, 'onfocus', this, partial(function(field){this.address['postal_code'] = field.value; clearTimeout(this.address.timeout);}, postal_code)); connect(postal_code, 'onblur', this, partial(this.onAddressFieldBlur, 'postal_code')); connect(postal_code, 'onkeydown', this, partial(this.blurOnEnter, postal_code));*/ }, onAddressFieldBlur: function(field) { if ($('field_vcard_'+field).value != this.address[field] || this.address.changed) { this.address.changed = true; this.address.timeout = setTimeout(this.getAddress, 200); } }, getAddress: function() { var fcity = this.address.fields['city'].value; if (fcity.length >= 3) { $('geocoding_indicator').style.visibility = 'visible'; var faddr = this.address.fields['address'].value; var fpcode = this.address.fields['postal_code'].value.replace(/\s+/g, ''); var params = {}; params['country'] = 'PL'; params['city_name'] = fcity; if(faddr.length == 0) { params['rpc'] = 'SearchCity'; } else { params['rpc'] = 'SearchStreet'; params['street_name'] = faddr; params['postal_code'] = fpcode; } this.logStat('geocode', params); this.djson.setCallback(this.onGeocode, this); this.djson.requestAbort(_TARGEO_GLOBALS.url+'service.html', params); } }, onGeocode: function(json) { if (json.captcha) { this.logStat('ongeocode', {captcha: 1}); this.showCaptcha('geocode'); return; } this.logStat('ongeocode', {items: json.items.length}); this.address.changed = false; if (json.items.length > 0) { var item = json.items[0]; var x = Math.round(parseFloat(json.items[0].loc['x'])*100000)/100000; var y = Math.round(parseFloat(json.items[0].loc['y'])*100000)/100000; if (!this.picon || (this.picon.x != x || this.picon.y != y)) { var movePoint = bind(function(auto) { var zoom = 22; if (item.street == '') { zoom = 22; } else if (item.house) { zoom = 19 } else { zoom = 21; } var c = {'x': x, 'y': y}; Mapa.moveTo(c, zoom); if (this.picon != null) { Mapa.destroyPoint('picon'); } this.setPoint(c); if (this.step > 1) { this.switchStep(1); } this.logStat('location', {'geo': auto}); this.showOverlay('Pozycja punktu została zmieniona.

Jeśli widoczna na mapce pozycja nie jest poprawna, skoryguj ją przeciągając ikonkę punktu we właściwe miejsce.', true, null, {width: 350}); }, this); if (this.picon && (this.distanceGPS({x: x, y: y}, this.picon) <= 200 || json.items[0].quality < 9)) { this.showOverlay('Adres uległ zmianie - czy zaktualizować pozycję punktu na mapie?', 2, [ partial(movePoint, false), bind(function(){this.logStat('ingoregeocode');}, this) ], {closebutton: 'yes', cancelbutton: 'no', width: 350, handlersAfterHide: true}); $('geocoding_indicator').style.visibility = 'hidden'; return; } movePoint(true); } } else { this.showOverlay('Adres uległ zmianie - sprawdź, czy pozycja ikonki na mapie jest poprawna, a jeśli nie, skoryguj ją przeciągając ikonkę punktu we właściwe miejsce.', true); } $('geocoding_indicator').style.visibility = 'hidden'; }, onMapChange: function() { if (typeof(Mapa) !== 'undefined') { signal(Mapa, 'onMapChange'); } }, setPoint: function(c, preset) { this.vcardPreviewHide(); var icon = this.icon = this.icon ? this.icon : {url: _TARGEO_GLOBALS.url+'i/icons/pins/pin-b.png', w:27, h:28, x:9, y:25}; Mapa.createPoint('picon', c, icon); if (this.category && this.category.bgoffset) { $('picon').style.background = 'url('+_TARGEO_GLOBALS.url+'i/poi/poi-iconset5.png) -'+this.category.bgoffset+'px 0 no-repeat'; } this.picon = {}; this.picon.x = Math.round(c['x']*100000)/100000; this.picon.y = Math.round(c['y']*100000)/100000; signal(this, 'onPointSet', c); if (this.fieldCoords && this.fieldCoords['t'] == 'deg') { var cdeg = this.coordsDec2Deg({x: c.x, y: c.y}); $('field_gps').value = cdeg.y+', '+cdeg.x; } else { $('field_gps').value = this.picon.y+'°N, '+this.picon.x+'°E'; } if (this.geocodedPosition && (c['x'] != this.geocodedPosition['x'] || c['y'] != this.geocodedPosition['y'])) { $('field_city').value = ''; $('field_address').value = ''; } if (this.piconSignals) { forEach(this.piconSignals, disconnect); } if (!preset) { this.logStat('location'); this.autoSave(); } this.piconSignals = [ connect('picon', 'onmouseover', partial(this.vcardPreviewUpdate, this.drag, this)), connect('picon', 'onmouseout', partial(bind(function(){ if (this.vcardHidePreviewTimeout) clearTimeout(this.vcardHidePreviewTimeout); this.vcardHidePreviewTimeout = setTimeout(this.vcardPreviewHide, 500);}, this), this.drag, this)), connect('picon', 'onmousedown', partial(this.drag.start, this.drag, this)) ]; }, parseGPSCoords: function(str) { var regCoordsDec = new RegExp("(-?\\d{1,3}([.,]\\d{2,})?)[^\\dEWNS]*([EWNS]?)", "g"); var regCoordsDeg = new RegExp("(-?\\d{1,3})[^\\d.,]+(\\d{1,2})([^\\dEWNS]+(\\d{1,2}(\.\\d+)?))?[^\\dEWNS]*([EWNS]?)", "g"); var coords = {x: null, y: null, t: null}; var parts = null; var dim = null; str = str.replace(/^\s+|\s+$/g,"").toUpperCase(); if (regCoordsDeg.test(str)) { regCoordsDeg.lastIndex = 0; for (var i = 0; i < 2; i++) { parts = regCoordsDeg.exec(str); if (i == 1 && parts == null) break; if (typeof(parts[4]) == 'undefined') parts[4] = 0; var c = parseInt(parts[1])+(parseInt(parts[1]) > 0 ? 1 : -1)*(parts[2]/60+parts[4]/3600); if ((dim == 'x' && (parts[6] == 'W' || parts[6] == 'E')) || (dim == 'y' && (parts[6] == 'N' || parts[6] == 'S'))) { return false; } if (parts[6] == 'W' || parts[6] == 'S') { c = -c; } dim = parts[6] == 'N' || parts[6] == 'S' ? 'y' : (parts[6] == 'E' || parts[6] == 'W' ? 'x' : (i == 0 ? 'y' : 'x')); coords[dim] = c; coords['t'] = 'deg'; } } if ((coords.x == null || coords.y == null) && regCoordsDec.test(str)) { coords = {x: null, y: null}; regCoordsDec.lastIndex = 0; for (var i = 0; i < 2; i++) { parts = regCoordsDec.exec(str); if (i == 1 && parts == null) break; var c = parseFloat(parts[1].replace(/,/,'.')); if ((dim == 'x' && (parts[3] == 'W' || parts[3] == 'E')) || (dim == 'y' && (parts[3] == 'N' || parts[3] == 'S'))) { return false; } if (parts[3] == 'W' || parts[3] == 'S') { c = -c; } dim = parts[3] == 'N' || parts[3] == 'S' ? 'y' : (parts[3] == 'E' || parts[3] == 'W' ? 'x' : (i == 0 ? 'y' : 'x')); coords[dim] = c; coords['t'] = 'dec'; } } if (coords.x != null && coords.y != null) { return coords; } else { return false; } }, coordsDec2Deg: function(coords) { var cdeg = {}; for (var i in coords) { var deg = coords[i]; var gpsdeg = parseInt(deg); var remainder = deg - (gpsdeg * 1); var gpsmin = remainder * 60; remainder = gpsmin - (parseInt(gpsmin)*1); var gpssec = remainder * 60; cdeg[i] = gpsdeg+'°'+parseInt(gpsmin)+"'"+(Math.round(10*parseInt(gpssec*100)/100)/10)+'"'+(gpsdeg > 0 ? (i == 'x' ? 'E' : 'N') : (i == 'x' ? 'W' : 'S')); } return cdeg; }, moveMap: function() { var boundsMap = {'minX': 14.07, 'minY': 49.0, 'maxX': 24.15, 'maxY': 54.9}; var coords = this.fieldCoords = this.parseGPSCoords($('field_gps').value); if (coords != false && coords.x >= boundsMap.minX && coords.x <= boundsMap.maxX && coords.y >= boundsMap.minY && coords.y <= boundsMap.maxY) { Mapa.moveTo({x: coords.x, y: coords.y}); } else { return; } if (this.picon != null) { Mapa.destroyPoint('picon'); this.picon = null; } this.setPoint({x: coords.x, y: coords.y}); }, logStat: function(action, data) { var statimg = new Image(); var src = './index.html?a=logstats&mod=poi&act='+action+'&hash='+this.campaign.hash+(typeof(loggedControl) != 'undefined' && loggedControl.userData ? '&wuid='+loggedControl.userData.id : ''); if (data) { src += '&data='+serializeJSON(data); } statimg.src = src; }, urlParams: function (params) { if (typeof (params) == 'object') { params[_TARGEO_GLOBALS.sessionName] = _TARGEO_GLOBALS.sessionId; params[_TARGEO_GLOBALS.keyName] = _TARGEO_GLOBALS.keyId; params['k'] = _TARGEO_GLOBALS.k; params['vn'] = _TARGEO_GLOBALS.vn; if (!isUndefinedOrNull(_TARGEO_GLOBALS.chr) && _TARGEO_GLOBALS.chr != 'utf-8') { params['enc'] = _TARGEO_GLOBALS.chr; } return params; } else { return _TARGEO_GLOBALS.urlParams; } }, showCaptcha: function(action) { switch (action) { case 'init': var handler = partial(this.init, this.options); break; case 'geocode': var handler = this.getAddress; break; } TargeoCaptchaImage.initialize(this, bind(handler, this)); }, onStepHover: function(step, hover) { if (step <= this.step+1 && step != this.step && !hasElementClass('step'+step, 'inactive')) { if (hover) { addElementClass('step'+step, 'hover'); } else { removeElementClass('step'+step, 'hover'); } } }, checkStep: function() { switch (this.step) { case 1: if (!this.picon) { this.showOverlay('Proszę wskazać lokalizację miejsca.', true); return false; } break; } if (typeof(this[this.type+'CheckStep']) == 'function') { return this[this.type+'CheckStep'](); } return true; }, switchStep: function(step) { if (this.step == 5) { window.location = _BASE_HREF+'/poi/'; return; } var secondstep = this.category && this.category.attr && this.category.attr.length; var steps = {1: 1, 2: 2, 3: (secondstep ? 3 : 2), 4: (secondstep ? 4 : 3)}; if (!step) { step = this.step + 1; if (step == 2 && !secondstep) { step++; } this.logStat('switchstep', {'s': step, 'next': 1}); } else { this.logStat('switchstep', {'s': step, 'next': 0}); } if (step == 5) { if (this.checkStep()) { this.save(); } return; } if (this.step == step || hasElementClass('step'+step, 'inactive')) { return; } if (steps[step] > this.step + 1) { return; } if (steps[step] == steps[this.step] + 1 && !this.checkStep()) { return; } if (this.step < 4) { removeElementClass('step'+(this.step+1), 'next'); addElementClass('step'+(this.step+1), 'inactive'); this.png24Change($('step'+(this.step+1)+'_img'), 'i/step'+(steps[this.step+1])+'_ia.png'); } if (this.step < step) { for (var i = this.step; i < step; i++) { removeElementClass('step'+i, 'active'); removeElementClass('step'+i, 'inactive'); this.png24Change($('step'+i+'_img'), 'i/step'+steps[i]+'_d.png'); } removeElementClass('step'+step, 'inactive'); } else if (this.step > step) { for (var i = this.step; i > step; i--) { removeElementClass('step'+i, 'active'); addElementClass('step'+i, 'inactive'); this.png24Change($('step'+i+'_img'), 'i/step'+steps[i]+'_ia.png'); } } else { return; } if (step < 4) { var nextstep = step != 1 || secondstep ? step+1 : 3; removeElementClass('step'+nextstep, 'inactive'); addElementClass('step'+nextstep, 'next'); this.png24Change($('step'+nextstep+'_img'), 'i/step'+(steps[step+1])+'_n.png'); } removeElementClass('step'+step, 'hover'); removeElementClass('step'+step, 'next'); addElementClass('step'+step, 'active'); this.png24Change($('step'+step+'_img'), 'i/step'+steps[step]+'_a.png'); if (step == 1 && !this.dataInitialized) { this.fillCampaignData(this.type); } var mapContainer = $('mapbox_s'+step); if ((this.options.edit || this.options.c) && mapContainer) { mapContainer.appendChild($('mapLite')); } this.step = step; //this.vcardPositionEditorToggle(false); $('location_form_edit').style.display = 0 && step == 1 ? 'block' : 'none'; $('data_form').style.display = step == 1 ? 'block' : 'none'; $('attr_form').style.display = step == 2 ? 'block' : 'none'; $('extdata_form').style.display = step == 3 ? 'block' : 'none'; $('owner_form').style.display = step == 4 ? 'block' : 'none'; this.png24Change($('button_next'), 'i/next.png'); $('button_save').style.display = 0 && this.options.edit && step < 4 ? 'inline' : 'none'; $('button_next').style.display = step < 4 ? 'inline' : 'none'; $('button_finish').style.display = step == 4 ? 'inline' : 'none'; $('mapLite').style.display = step !== 3 ? 'block' : 'none'; if (step == 3) { this.vcardExtPreviewSet(); } }, onTypeHover: function(type, hover) { if (hover && type != this.type) { addElementClass('adtype_'+type, 'hover'); } else { removeElementClass('adtype_'+type, 'hover'); } }, mapClick: function(e) { var type = e.event().type; if (type == 'mousedown') { this.mapClickPage = e.mouse().page; var dragable = getFirstElementByTagAndClassName('div', null, 'mapLite'); if (dragable.setCapture) { dragable.setCapture(); } else { dragable = window; } this.dragSig = []; this.dragSig.push(connect(dragable, 'onmousemove', this, partial(this.mapDrag, false))); this.dragSig.push(connect(dragable, 'onmouseup', this, partial(this.mapDrag, true))); return; } else { if (this.mapClickPage != null) { var page = e.mouse().page; if (Math.abs(page.x-this.mapClickPage.x) < 3 && Math.abs(page.y-this.mapClickPage.y) < 3) { if (this.step != 1) return; var mappos = getElementPosition('mapLite'); page.x -= mappos.x; page.y -= mappos.y; if (this.picon != null && confirm('Czy chcesz zmienić lokalizację miejsca?')) { Mapa.destroyPoint('picon'); this.picon = null; } if (this.picon == null) { this.setPoint(Mapa.getCoords(page)); } } } this.mapClickPage = null; } }, mapDrag: function(end, e) { if (end) { var dragable = getFirstElementByTagAndClassName('div', null, 'mapLite'); if (dragable.releaseCapture) { dragable.releaseCapture(); } disconnect(this.dragSig[0]); disconnect(this.dragSig[1]); this.bubbleConstrOffset = null; this.dragSig = null; } }, showOverlay: function(text, buttons, func, options) { options = setdefault(options || {}, {width: 300, closebutton: 'ok', cancelbutton: 'qcancel', handlersAfterHide: false}); if (!isArrayLike(func)) { func = [func]; } var dims = getElementDimensions(document.body); var vpd = getViewportDimensions(); var vpp = getViewportPosition(); var d = $('overlay'); if (d) { if ($('overlay_close_btn')) { disconnectAll('overlay_close_btn'); } if ($('overlay_cancel_btn')) { disconnectAll('overlay_cancel_btn'); } removeElement('overlay_label'); } else { var d = DIV({id: 'overlay', style: 'position: absolute; left: 0; top: 0; background-color: #000; z-index: 32000;'}); document.body.appendChild(d); setOpacity(d, 0.8); } setElementDimensions('overlay', {w: dims.w, h: Math.max(dims.h, vpd.h)}); if (!buttons) { var l = DIV({id: 'overlay_label', style: 'text-align: center; position: absolute; color: #fff; z-index: 32001; width: '+vpd.w+'px'}); l.innerHTML = text; } else { var lc = DIV({id: 'overlay_label_contents', 'style': 'overflow: hidden'}); var l = DIV({id: 'overlay_label', 'class': 'overlay_label', 'style': 'width: '+(options.width+20)+'px;'}, DIV({'class': 'topl', 'style': 'width: '+(options.width+10)+'px;'}), DIV({'class': 'topr'}), DIV({'class': 'middle', 'style': 'width: '+options.width+'px;'}, lc, IMG({'style': 'cursor: pointer; width: 102px; height: 28px; margin-top: 10px;', 'id': 'overlay_close_btn', 'src': 'i/'+options.closebutton+'.png'}), buttons === 2 ? IMG({'style': 'cursor: pointer; width: 102px; height: 28px; margin-top: 10px; margin-left: 10px;', 'id': 'overlay_cancel_btn', 'src': 'i/'+options.cancelbutton+'.png'}) : null), DIV({'class': 'bottoml', 'style': 'width: '+(options.width+10)+'px;'}), DIV({'class': 'bottomr'}) ); if (typeof(text) == 'string') { lc.innerHTML = text; } else { lc.appendChild(text); } } document.body.appendChild(l); var ldims = getElementDimensions(l); if (buttons && ldims.h > vpd.h-100) { lc.style.height = Math.max(100, vpd.h-100)+'px'; ldims = getElementDimensions(l); } setElementPosition(l, {x: vpp.x + Math.floor((vpd.w-ldims.w)/2), y: vpp.y + Math.floor((vpd.h-ldims.h)/2)}); if (this.overlaySig) { forEach(this.overlaySig, disconnect); } this.overlaySig = []; if (buttons) { this.overlaySig.push(connect('overlay_close_btn', 'onclick', this, partial(this.hideOverlay, func[0], options.handlersAfterHide))); this.overlaySig.push(connect('overlay_close_btn', 'onmouseover', this, function(){$('overlay_close_btn').src = 'i/'+options.closebutton+'_on.png';})); this.overlaySig.push(connect('overlay_close_btn', 'onmouseout', this, function(){$('overlay_close_btn').src = 'i/'+options.closebutton+'.png';})); func.shift(); if (buttons === 2) { $('overlay_cancel_btn').focus(); this.overlaySig.push(connect('overlay_cancel_btn', 'onclick', this, partial(this.hideOverlay, func[0], options.handlersAfterHide))); this.overlaySig.push(connect('overlay_cancel_btn', 'onmouseover', this, function(){$('overlay_cancel_btn').src = 'i/'+options.cancelbutton+'_on.png';})); this.overlaySig.push(connect('overlay_cancel_btn', 'onmouseout', this, function(){$('overlay_cancel_btn').src = 'i/'+options.cancelbutton+'.png';})); func.shift(); } else { $('overlay_close_btn').focus(); } } var dlinks = getElementsByTagAndClassName('span', 'dialog_link', lc); for (var i = 0; i < dlinks.length; i++) { this.overlaySig.push(connect(dlinks[i], 'onclick', this, partial(this.hideOverlay, func[i], options.handlersAfterHide))); } this.overlaySig.push(connect(window, 'onresize', this, 'resizeOverlay')); var inp = $('overlay_input'); if (inp) { inp.focus(); this.overlaySig.push(connect(inp, 'onkeydown', this, partial(function(f, e){if (e.key().string == 'KEY_ENTER') this.hideOverlay(f);}, func[0]))); } else if (buttons) { this.overlaySig.push(connect(window, 'onkeydown', this, partial(function(f, e){if (e.key().string == 'KEY_ENTER') this.hideOverlay(f);}, func[0]))); } }, resizeOverlay: function() { if (!$('overlay')) return; var l = $('overlay_label'); var lc = $('overlay_label_contents'); var dims = getElementDimensions(document.body); var vpd = getViewportDimensions(); var vpp = getViewportPosition(); var ldims = getElementDimensions(l); if (lc) { if (ldims.h > vpd.h-vpp.y-100) { lc.style.height = (vpd.h-vpp.y-100)+'px'; } else { lc.style.height = ''; ldims = getElementDimensions(l); if (ldims.h > vpd.h-vpp.y-100) { lc.style.height = (vpd.h-vpp.y-100)+'px'; } } ldims = getElementDimensions(l); } setElementDimensions('overlay', {w: dims.w, h: Math.max(dims.h, vpd.h)}); setElementPosition('overlay_label', {x: vpp.x + Math.floor((vpd.w-ldims.w)/2), y: vpp.y + Math.floor((vpd.h-ldims.h)/2)}); }, hideOverlay: function(func, afterHide) { if (!$('overlay')) return; if (typeof(func) == 'function' && afterHide !== true) { var hide = func(); if (hide === false) { return; } } forEach(this.overlaySig, disconnect); if ($('overlay_label')) removeElement('overlay_label'); if ($('overlay')) removeElement('overlay'); if ($('overlay_label_orig')) removeElement('overlay_label_orig'); if (typeof(func) == 'function' && afterHide === true) { var hide = func(); if (hide === false) { return; } } }, bindInfoBalloon: function(elem, str) { if (typeof(elem) == 'string') { elem = $(elem); } elem.style.cursor = 'pointer'; connect(elem, 'onmouseover', this, partial(this.showInfoBalloon, elem, str)); connect(elem, 'onmouseout', this, partial(this.hideInfoBalloon, elem)); }, showInfoBalloon: function(elem, str) { elem.src = 'i/info-on.png'; var pos = getElementPosition(elem); var d = DIV({'id': 'info_balloon_container', 'style': 'position: absolute; left: 0; top: 0; width: 342px; z-index: 10000; visibility: hidden'}); d.appendChild(DIV({'id': 'info_balloon_text', 'style': 'position: absolute; left: 5px; top: 5px; width: 322px; color: #bbb; z-index: 10001'})); document.body.appendChild(d); $('info_balloon_text').innerHTML = str; var dims = getElementDimensions('info_balloon_text'); if (dims.h > 250) { $('info_balloon_text').style.height = '250px'; $('info_balloon_text').style.overflow = 'auto'; var height = 287; } else { var height = dims.h + 37; } d.appendChild(DIV({'id': 'info_balloon_topbg', 'style': 'position: absolute; left: 0; top: 0; width: 342px; height: '+(height-41)+'px; overflow: hidden;'}, this.png24('i/bubble_bg_t.png'))); d.appendChild(DIV({'id': 'info_balloon_botbg', 'style': 'position: absolute; left: 0; top: '+(height-41)+'px; width: 342px; height: 41px;'}, this.png24('i/bubble_bg_b.png'))); d.style.top = (pos.y-height)+'px'; d.style.left = (pos.x-21)+'px'; d.style.visibility = 'visible'; this.infoBalloon = d; }, hideInfoBalloon: function(elem) { if (this.infoBalloon) { removeElement(this.infoBalloon); this.infoBalloon = null; } elem.src = 'i/info.png'; }, png24: function(imageUrl, attrs, scale) { if (isUndefinedOrNull(attrs)) { var attrs = {}; } attrs.src = imageUrl; attrs.border = '0'; var image = IMG(attrs); //updateNodeAttributes(image, attrs); if(_TARGEO_BROWSER.pngFix) { var sizingMethod = (scale === true) ? 'scale' : 'image'; image.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+ imageUrl +'", sizingMethod="'+sizingMethod+'")'; image.src = _TARGEO_GLOBALS.urlEmpty; } return image; }, png24fix: function () { var a = arguments.length; if(!_TARGEO_BROWSER.pngFix) return; var f1 = function (method, e2) { e2.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+ e2.src +'", sizingMethod="'+method+'")'; e2.src = _TARGEO_GLOBALS.urlEmpty; removeElementClass(e2, 'png24fix'); }; for (var i=0; i/g, '>'); str = str.replace(/"/g, '"'); return str; }, htmlDecode: function(str) { str = str.replace(/&/g, '&'); str = str.replace(/</g, '<'); str = str.replace(/>/g, '>'); str = str.replace(/"/g, '"'); str = str.replace(/ /g, ' '); return str; }, htmlspecialchars: function ($string, decode) { var a1 = ['<', '<', '>', '>', '"', '"', "'", ''']; for (var i=0; iDokonałeś zmian w danych miejsca. Czy chcesz, aby były widoczne na mapie?']; html.push('Tak, zaktualizuj dane miejsca'); html.push('Nie, ale zachowaj zmiany do późniejszej edycji'); html.push('Nie, zignoruj zmiany'); html.push(''); this.showOverlay(html.join(''), true, [function(){}, bind(this.save, this), function(){window.location = _BASE_HREF+'poi/';}, bind(function(){window.location = _BASE_HREF+'index.html?a=poi_cancel&cid='+this.campaign.id+'&f=c';}, this)], {closebutton: 'qcancel'}); } else { if (this.options.correct) { window.close(); } setTimeout(function(){window.location = _BASE_HREF+'poi/'}, 100); } return false; } }; MochiKit.Base.update(TargeoWizard, { vcardFillCampaignData: function() { this.campaign.metadata = setdefault(this.campaign.metadata || {}, { name: '', department: '', motto: '', url: ''/*, url_label: ''*/, email: '', phone: '', address: '', city: '', postal_code: '', tin: '', workhours: '', 'workhours[]': {mon:'',tue:'',wed:'',thu:'',fri:'',sat:'',sun:''}, shortdesc: '', description: '', logo: '', pics: [], company_type: 0, keywords: [], owner_id: false, company: {} }); this.campaign.metadata.company = setdefault(this.campaign.metadata.company || {}, {name: '', city: '', address: '', postal_code: '', tin: '', phone: ''}); if (this.campaign.metadata.description) { this.campaign.metadata.description = this.campaign.metadata.description.replace(/]*data-mce-type[^>]*>\ufeff*<\/span>/g, ''); } if (originaldata.description) { originaldata.description = originaldata.description.replace(/]*data-mce-type[^>]*>\ufeff*<\/span>/g, ''); } else { originaldata.description = ''; } metadata = this.campaign.metadata; if (this.category) { if (this.campaign.metadata.name == '' && this.category.level > 1 && this.category.name.indexOf('-') > 0) { var n = this.category.name.split(' - '); if (n.length == 2) { n = n[1]+' '+n[0]; } else { n = n.join(' '); } this.campaign.metadata.name = n; } } connect('vcard_balloon_preview', 'onmouseenter', partial(this.vcardPreviewUpdate, this.drag, this)), connect('vcard_balloon_preview', 'onmouseleave', partial(bind(function(){ if (this.vcardHidePreviewTimeout) clearTimeout(this.vcardHidePreviewTimeout); this.vcardHidePreviewTimeout = setTimeout(this.vcardPreviewHide, 500);}, this), this.drag, this)), connect('vcard_keyword_button', 'onmouseover', this, function(){$('vcard_keyword_button').src = 'i/add_on_b.png';}); connect('vcard_keyword_button', 'onmouseout', this, function(){$('vcard_keyword_button').src = 'i/add_b.png';}); connect('vcard_keyword_button', 'onclick', this, partial(this.vcardAddKeyword, null, true)); connect('field_vcard_keyword', 'onkeydown', this, function(ev) {var key = ev.key().string; if (key == 'KEY_ENTER') {ev.stop(); this.vcardAddKeyword(null, true);}}); this.bindField('field_vcard_name', metadata, 'name'); if ($('point_name_title')) { $('point_name_title').innerHTML = metadata.name; if ($('point_map_link')) $('point_map_link').href = 'http://mapa.targeo.pl/'+metadata.name.replace(/&[a-z]+;/g, '').replace(/[^\w-. ]/g, ' ')+',miejsce_'+(this.campaign.poi_id ? this.campaign.poi_id : this.campaign.id); connect('field_vcard_name', 'onchange', this, function(){$('point_name_title').innerHTML = $('field_vcard_name').value; if ($('point_map_link')) $('point_map_link').href = 'http://mapa.targeo.pl/'+$('field_vcard_name').value.replace(/[^\w-. ]/g, ' ')+',miejsce_'+this.campaign.id;}); } this.bindField('field_vcard_department', metadata, 'department'); this.bindField('field_vcard_url', metadata, 'url'); /*connect('field_vcard_url', 'onchange', this, function(){if (!this.campaign.metadata.url_label) this.campaign.metadata.url_label = $('field_vcard_url_label').value = $('field_vcard_url').value;}); if (metadata.url && !metadata.url_label) { metadata.url_label = metadata.url; } this.bindField('field_vcard_url_label', metadata, 'url_label'); connect('field_vcard_url_label', 'onchange', this, function(){if (!this.campaign.metadata.url) this.campaign.metadata.url = $('field_vcard_url').value = $('field_vcard_url_label').value;});*/ this.bindField('field_vcard_email', metadata, 'email'); this.bindField('field_vcard_phone', metadata, 'phone'); this.fieldConnects['field_vcard_phone'].push(connect('field_vcard_phone', 'onkeyup', this, 'vcardGetParsedPhone')); if (originaldata.phone != metadata.phone) { this.vcardGetParsedPhone(); } this.bindField('field_vcard_address', metadata, 'address'); this.bindField('field_vcard_city', metadata, 'city'); this.bindField('field_vcard_postal_code', metadata, 'postal_code'); this.initAddressFields($('field_vcard_city'), $('field_vcard_address'), $('field_vcard_postal_code')); var workdaysmerge = true; if (!metadata['workhours[]']) { metadata['workhours[]'] = {}; } if ('workhours[][]' in metadata) { for (var i in metadata['workhours[][]']) { this.bindField('field_vcard_workhours_'+i+'_from', metadata['workhours[][]'][i], 'from'); connect('field_vcard_workhours_'+i+'_from', 'onchange', partial(this.vcardSetWorkhours, 'field_vcard_workhours_'+i+'_from')); this.bindField('field_vcard_workhours_'+i+'_to', metadata['workhours[][]'][i], 'to'); connect('field_vcard_workhours_'+i+'_to', 'onchange', partial(this.vcardSetWorkhours, 'field_vcard_workhours_'+i+'_to')); if (findValue(['mon','tue','wed','thu','fri'], i) > -1) { if ((metadata['workhours[][]'][i]['from'] !== metadata['workhours[][]']['workdays']['from'] || metadata['workhours[][]'][i]['to'] !== metadata['workhours[][]']['workdays']['to']) && metadata['workhours[][]']['workdays']['from'] !== false) { workdaysmerge = false; } } } } else { metadata['workhours[][]'] = {mon: {}, tue: {}, wed: {}, thu: {}, fri: {}, sat: {}, sun: {}, workdays: {from: false, to: false}}; for (var i in metadata['workhours[][]']) { if (i != 'workdays') { if (metadata['workhours[]'][i]) { metadata['workhours[][]'][i] = metadata['workhours[]'][i].split(/ ?- ?/); metadata['workhours[][]'][i] = {'from': metadata['workhours[][]'][i][0], 'to': metadata['workhours[][]'][i][1]}; } else { metadata['workhours[][]'][i] = {'from': '', 'to': ''}; } if (findValue(['mon','tue','wed','thu','fri'], i) > -1) { if ((metadata['workhours[][]'][i]['from'] !== metadata['workhours[][]']['workdays']['from'] || metadata['workhours[][]'][i]['to'] !== metadata['workhours[][]']['workdays']['to']) && metadata['workhours[][]']['workdays']['from'] !== false) { workdaysmerge = false; } else { metadata['workhours[][]']['workdays'] = merge(metadata['workhours[][]'][i]); } } } this.bindField('field_vcard_workhours_'+i+'_from', metadata['workhours[][]'][i], 'from'); connect('field_vcard_workhours_'+i+'_from', 'onchange', partial(this.vcardSetWorkhours, 'field_vcard_workhours_'+i+'_from')); this.bindField('field_vcard_workhours_'+i+'_to', metadata['workhours[][]'][i], 'to'); connect('field_vcard_workhours_'+i+'_to', 'onchange', partial(this.vcardSetWorkhours, 'field_vcard_workhours_'+i+'_to')); } } if (workdaysmerge) { connect('workhours_workhours_expand', 'onclick', this, function() { showElement('workhours_workdays_container'); hideElement('workhours_workhours_expand'); hideElement('workhours_workdays'); }); } else { metadata['workhours[][]']['workdays'] = {'from': '', 'to': ''}; showElement('workhours_workdays_container'); hideElement('workhours_workdays'); hideElement('workhours_workhours_expand'); } this.bindField('field_vcard_workhours_workdays_from', metadata['workhours[][]']['workdays'], 'from'); connect('field_vcard_workhours_workdays_from', 'onchange', partial(this.vcardSetWorkhours, 'field_vcard_workhours_workdays_from')); this.bindField('field_vcard_workhours_workdays_to', metadata['workhours[][]']['workdays'], 'to'); connect('field_vcard_workhours_workdays_to', 'onchange', partial(this.vcardSetWorkhours, 'field_vcard_workhours_workdays_to')); this.bindInfoBalloon('info_vcard_workhours', 'Jeśli godzina zamknięcia nie jest określona, wpisz znak "~".'); //this.bindField('field_vcard_workhours', metadata, 'workhours'); this.bindField('field_vcard_shortdesc', metadata, 'shortdesc'); this.bindInfoBalloon('info_vcard_shortdesc', 'Krótka informacja (do 200 znaków) widoczna w dymku miejsca.'); connect('field_vcard_shortdesc', 'onkeydown', partial(this.limitTextarea, 'vcard_shortdesc', 200)); connect('field_vcard_shortdesc', 'onkeyup', partial(this.limitTextarea, 'vcard_shortdesc', 200)); this.limitTextarea('vcard_shortdesc', 200); this.vcardCategorySelect = new POICategorySelect($('select_vcard_category'), 'field_vcard_category', (this.category && (this.category.level >= 1 || this.category.id == 4000 || this.category.id == 3319) ? this.category : null), {expandElement: $('select_vcard_category_expand'), controlElement: $('select_vcard_category_expand_bottom'), inputElement: SPAN({'class': 'input_205'}, INPUT({'type': 'text'})), buttonElement: BUTTON({'class': 'select_350_label'}), offset: {x: 0, y: -4}, maxHeight: 280}); connect(this.vcardCategorySelect, 'onChange', this, 'vcardOnCategoryChange'); connect(this.vcardCategorySelect, 'onFail', this, function(fieldValue, value) { this.vcardCategorySelect.fieldValue = value; this.showOverlay('Proszę wybrać jedną z dostępnych kategorii.', true, function(){setTimeout(function(){$('select_vcard_category').firstChild.focus();}, 10);}, {handlersAfterHide: true}); this.logStat('categoryfail', {'c': fieldValue, 'pid': this.campaign.poi_id ? this.campaign.poi_id : this.campaign.id}); }); if (this.category) { this.setIcon({url: this.category.icon, w:16, h:16, x:8, y:8}); if (this.category.bgoffset) { $('picon').style.background = 'url('+_TARGEO_GLOBALS.url+'i/poi/poi-iconset5.png) -'+this.category.bgoffset+'px 0 no-repeat'; } } if (metadata.keywords && metadata.keywords.length > 0) { $('list_vcard_keywords').innerHTML = ''; for (var i = 0; i < metadata.keywords.length; i++) { this.vcardAddKeyword(metadata.keywords[i], false); } } this.bindInfoBalloon('info_vcard_keywords', 'Wpisz słowa pojedynczo lub wiele słów naraz, oddzielając je przecinkami.
Maksymalna liczba słów kluczowych: 20
Maksymalna liczba znaków: 200.'); var geom = this.campaign.geometry; if (geom && geom.x && geom.y) { Mapa.moveTo({x: parseFloat(geom.x), y: parseFloat(geom.y)}); this.setPoint({x: parseFloat(geom.x), y: parseFloat(geom.y)}, true); } if (this.category && this.category.attr && this.category.attr.length) { var tablebody = TBODY(); $('vcard_attributes').appendChild(TABLE({}, tablebody)); var attr = this.category.attr; if (!metadata.attr) metadata.attr = {}; for (var i = 0; i < attr.length; i++) { switch (attr[i].t) { case 't' : tablebody.appendChild(TR({'class': 'input_row'}, TD({}, LABEL({}, attr[i].l)), TD({}, SPAN({'class': 'input_205'}, INPUT({'type': 'text', 'id': 'field_vcard_attr_'+attr[i].n}))))); this.bindField('field_vcard_attr_'+attr[i].n, metadata.attr, attr[i].n); break; case 'ta' : tablebody.appendChild(TR({'class': 'input_row'}, TD({}, LABEL({}, attr[i].l)), TD({}, DIV({'class': 'textarea_205'}, INPUT({'type': 'text', 'id': 'field_vcard_attr_'+attr[i].n}))))); this.bindField('field_vcard_attr_'+attr[i].n, metadata.attr, attr[i].n); break; case 'c' : tablebody.appendChild(TR({'class': 'input_row'}, TD({}), TD({}, DIV({'id': 'field_vcard_attr_'+attr[i].n})))); attr[i].control = new CheckboxControl(attr[i].l, metadata.attr[attr[i].n] ? true : false); $('field_vcard_attr_'+attr[i].n).appendChild(attr[i].control.element); this.fieldConnects['field_vcard_attr_'+attr[i].n] = [connect(attr[i].control, 'onClick', this, 'vcardPreviewUpdate')]; break; case 's' : tablebody.appendChild(TR({'class': 'input_row'}, TD({}, LABEL({}, attr[i].l)), TD({}, SPAN({'class': 'select_205', 'id': 'field_vcard_attr_'+attr[i].n})))); var opts = {'_': [{value: -1, label: '-'}]}; var opt = null; for (var j = 0; j < attr[i].o.length; j++) { opts['_'].push({value: j, label: attr[i].o[j]}); if (metadata.attr[attr[i].n] == attr[i].o[j]) opt = j; } attr[i].control = new SelectControl($('field_vcard_attr_'+attr[i].n), 'field_vcard_attr_'+attr[i].n+'_s', opts, {w: 340, maxh: 80}); if (opt) { attr[i].control.setValue(); } this.fieldConnects['field_vcard_attr_'+attr[i].n] = [connect(attr[i].control, 'onChange', this, function(value){metadata.attr[attr[i].n] = value; this.vcardPreviewUpdate();})]; break; } } } this.vcardOwnerCheckbox = new CheckboxControl($('field_vcard_owner_label'), this.category && (this.category.active & 16) && metadata.owner_id, {disabled: !this.category || (this.category.active & 16) == 0}); connect(this.vcardOwnerCheckbox, 'onClick', this, function(checked){this.campaign.metadata.owner_id = checked;}); if (!this.vcardOwnerCheckbox.checked) { this.vcardOnOwnerClick(false); } $('field_vcard_owner').appendChild(this.vcardOwnerCheckbox.element); this.fieldConnects['field_vcard_owner'] = [connect(this.vcardOwnerCheckbox, 'onClick', this, 'vcardOnOwnerClick')]; this.bindField('field_vcard_c_name', metadata.company, 'name'); this.bindField('field_vcard_c_city', metadata.company, 'city'); this.bindField('field_vcard_c_address', metadata.company, 'address'); this.bindField('field_vcard_c_postal_code', metadata.company, 'postal_code'); this.bindField('field_vcard_c_tin', metadata.company, 'tin'); this.bindField('field_vcard_c_phone', metadata.company, 'phone'); this.webuserConsentDataCheckbox = new CheckboxControl($('field_webuser_consent_data_label'), false); $('field_webuser_consent_data').appendChild(this.webuserConsentDataCheckbox.element); this.webuserConsentMarketingCheckbox = new CheckboxControl($('field_webuser_consent_marketing_label'), false); $('field_webuser_consent_marketing').appendChild(this.webuserConsentMarketingCheckbox.element); }, vcardOnOwnerClick: function(on) { var fields = ['name', 'city', 'address', 'postal_code', 'tin', 'phone']; var field = null; var classFunc = null; for (var i = 0; i < fields.length; i++) { field = $('field_vcard_c_'+fields[i]); field.disabled = !on; classFunc = on ? removeElementClass : addElementClass; classFunc(field.parentNode, 'disabled350'); } }, vcardOnCategoryChange: function(cid, category) { if (this.campaign.metadata.poi_category_id == cid) return; if (this.category && this.category.attr && this.category.attr.length) { var attr = this.category.attr; for (var i = 0; i < attr.length; i++) { forEach(this.fieldConnects['field_vcard_attr_'+attr[i].n], disconnect); if (attr[i].control && typeof(attr[i].control.destroy) == 'function') { attr[i].control.destroy(); } } $('vcard_attributes').innerHTML = ''; } if (category) { category.bgoffset = category.icon.bgoffset; category.icon = category.icon.src; } this.category = category; this.campaign.metadata.poi_category_id = cid; if (this.category && this.category.active & 16) { this.vcardOwnerCheckbox.setValue(this.campaign.metadata.owner_id); this.vcardOwnerCheckbox.enable(); this.vcardOnOwnerClick(true); } else { this.vcardOwnerCheckbox.setValue(false); this.vcardOwnerCheckbox.disable(); this.vcardOnOwnerClick(false); } if (this.category) { this.setIcon({url: this.category.icon, w:16, h:16, x:8, y:8}); if (this.category.bgoffset) { $('picon').style.background = 'url('+_TARGEO_GLOBALS.url+'i/poi/poi-iconset5.png) -'+this.category.bgoffset+'px 0 no-repeat'; } else { $('picon').style.background = 'none'; } if (!this.options.correct) { if (this.category.attr && this.category.attr.length) { var tablebody = TBODY(); $('vcard_attributes').appendChild(TABLE({}, tablebody)); var attr = this.category.attr; metadata.attr = {}; for (var i = 0; i < attr.length; i++) { switch (attr[i].t) { case 't' : tablebody.appendChild(TR({'class': 'input_row'}, TD({}, LABEL({}, attr[i].l)), TD({}, SPAN({'class': 'input_205'}, INPUT({'type': 'text', 'id': 'field_vcard_attr_'+attr[i].n}))))); this.bindField('field_vcard_attr_'+attr[i].n, metadata.attr, attr[i].n); break; case 'ta' : tablebody.appendChild(TR({'class': 'input_row'}, TD({}, LABEL({}, attr[i].l)), TD({}, DIV({'class': 'textarea_205'}, INPUT({'type': 'text', 'id': 'field_vcard_attr_'+attr[i].n}))))); this.bindField('field_vcard_attr_'+attr[i].n, metadata.attr, attr[i].n); break; case 'c' : tablebody.appendChild(TR({'class': 'input_row'}, TD({}), TD({}, DIV({'id': 'field_vcard_attr_'+attr[i].n})))); attr[i].control = new CheckboxControl(attr[i].l, metadata.attr[attr[i].n] ? true : false); $('field_vcard_attr_'+attr[i].n).appendChild(attr[i].control.element); connect(attr[i].control, 'onClick', this, 'vcardPreviewUpdate'); break; case 's' : tablebody.appendChild(TR({'class': 'input_row'}, TD({}, LABEL({}, attr[i].l)), TD({}, SPAN({'class': 'select_205', 'id': 'field_vcard_attr_'+attr[i].n})))); var opts = {'_': [{value: -1, label: '-'}]}; var opt = null; for (var j = 0; j < attr[i].o.length; j++) { opts['_'].push({value: j, label: attr[i].o[j]}); if (metadata.attr[attr[i].n] == attr[i].o[j]) opt = j; } attr[i].control = new SelectControl($('field_vcard_attr_'+attr[i].n), 'field_vcard_attr_'+attr[i].n+'_s', opts, {w: 340, maxh: 80}); if (opt) { attr[i].control.setValue(); } connect(attr[i].control, 'onChange', this, function(value){metadata.attr[attr[i].n] = value; this.vcardPreviewUpdate();}); break; } } $('step2').style.display = 'block'; $('step2').className = 'step_label next'; this.png24Change($('step2_img'), 'i/step2_n.png'); this.png24Change($('step3_img'), 'i/step3_ia.png'); $('step3').className = 'step_label inactive'; this.png24Change($('step4_img'), 'i/step4_ia.png'); $('step4').className = 'step_label inactive'; } else { $('step2').style.display = 'none'; this.png24Change($('step3_img'), 'i/step2_n.png'); $('step3').className = 'step_label next'; this.png24Change($('step4_img'), 'i/step3_n.png'); $('step4').className = 'step_label inactive'; } } } else { this.setIcon({url: _TARGEO_GLOBALS.url+'i/icons/pins/pin-b.png', w:27, h:28, x:9, y:25}); $('picon').style.background = 'none'; if (!this.options.correct) { $('step2').style.display = 'none'; this.png24Change($('step3_img'), 'i/step2_n.png'); $('step3').className = 'step_label next'; this.png24Change($('step4_img'), 'i/step3_n.png'); $('step4').className = 'step_label inactive'; } } this.vcardPreviewUpdate(); }, vcardSetWorkhours: function (fieldId) { var field = $(fieldId); var day = fieldId.split('_')[3]; var lim = fieldId.split('_')[4]; var hour = field.value.match(/^\s*(\d\d?)([.:](\d\d))?\s*$/); if (hour) { field.value = this.campaign.metadata['workhours[][]'][day][lim] = hour[1]+':'+(hour[3] ? hour[3] : '00'); } else { field.value = this.campaign.metadata['workhours[][]'][day][lim] = ''; } var workdays = ['mon', 'tue', 'wed', 'thu', 'fri']; if (day == 'workdays') { for (var i = 0; i < workdays.length; i++) { this.campaign.metadata['workhours[][]'][workdays[i]] = merge(this.campaign.metadata['workhours[][]']['workdays']); $('field_vcard_workhours_'+workdays[i]+'_from').value = this.campaign.metadata['workhours[][]'][workdays[i]]['from']; $('field_vcard_workhours_'+workdays[i]+'_to').value = this.campaign.metadata['workhours[][]'][workdays[i]]['to']; } } else if (findValue(workdays, day) > -1) { var workdaysmerge = true; this.campaign.metadata['workhours[][]']['workdays'] = {from: false, to: false}; for (var i = 0; i < workdays.length; i++) { if ((this.campaign.metadata['workhours[][]'][workdays[i]]['from'] !== this.campaign.metadata['workhours[][]']['workdays']['from'] || this.campaign.metadata['workhours[][]'][workdays[i]]['to'] !== this.campaign.metadata['workhours[][]']['workdays']['to']) && this.campaign.metadata['workhours[][]']['workdays']['from'] !== false) { workdaysmerge = false; break; } else { this.campaign.metadata['workhours[][]']['workdays'] = merge(metadata['workhours[][]'][workdays[i]]); } } if (!workdaysmerge) { this.campaign.metadata['workhours[][]']['workdays'] = {from: '', to: ''}; } $('field_vcard_workhours_workdays_from').value = this.campaign.metadata['workhours[][]']['workdays'].from; $('field_vcard_workhours_workdays_to').value = this.campaign.metadata['workhours[][]']['workdays'].to; } }, vcardCheckStep: function () { switch (this.step) { case 1: if (this.category && this.category.name != this.vcardCategorySelect.fieldValue) { return false; } var metadata = this.campaign.metadata; var required = []; if (!metadata.name) required.push('nazwę'); if (!metadata.city) required.push('miasto'); if (!metadata.address) required.push('adres'); //if (!metadata.postal_code) required.push('kod pocztowy'); if (metadata.poi_category < 2000 || metadata.poi_category > 4000 || !this.category || (this.category.level < 1 && this.category.id != 4000 && this.category.id != 3319)) required.push('kategorię'); if (required.length > 0) { if (required.length == 1 && required[0] == 'kategorię') { this.showOverlay('Proszę wybrać kategorię.', true); this.vcardCategorySelect.toggle(true); } else { this.showOverlay('Proszę podać '+required.join(', ')+'.', true); } return false; } if (metadata.url) { var url = metadata.url; if (!url.match(/^https?:\/\//)) { metadata.url = $('field_vcard_url').value = url = 'http://'+url; } if (!this.isUrl(url)) { this.showOverlay('Wpisany adres strony WWW nie jest poprawny.', true); return false; } } /*if (metadata.url_label && !this.isUrl(metadata.url_label)) { this.showOverlay('Wpisany wyświetlany adres strony WWW nie jest poprawny.', true); return false; } if (metadata.url ? !metadata.url_label : metadata.url_label) { this.showOverlay('Proszę wypełnić oba pola dotyczące adresu WWW lub oba pozostawić puste.', true); return false; }*/ var emailRG = new RegExp("^[a-zA-Z0-9_\\+\\-\\.]*[a-zA-Z0-9_\\+\\-]\\@([a-zA-Z0-9\\-]+\\.){1,4}[a-zA-Z]{2,}$"); if (metadata.email && !emailRG.test(metadata.email)) { this.showOverlay('Wpisany adres email nie jest poprawny.', true); return false; } for (var i in metadata['workhours[][]']) { if (i != 'workdays') { for (j in metadata['workhours[][]'][i]) { if (j != 'to' || metadata['workhours[][]'][i][j] != '~') { var hour = metadata['workhours[][]'][i][j].match(/^(\d\d?):(\d\d)$/); if (metadata['workhours[][]'][i][j] != '' && (!hour || parseInt(hour[1]) > 24 || parseInt(hour[2]) > 59)) { this.showOverlay('Podane godziny otwarcia nie są poprawne.', true); return false; } } } var from = metadata['workhours[][]'][i]['from'].split(':'); var to = metadata['workhours[][]'][i]['to'] == '~' ? ['5', '00'] : metadata['workhours[][]'][i]['to'].split(':'); if (from.length != to.length || (from.length == 2 && ((parseInt(from[0]) > parseInt(to[0]) && parseInt(to[0]) >= 6) || (parseInt(from[0]) == parseInt(to[0]) && parseInt(from[1]) >= parseInt(to[1]))))) { this.showOverlay('Podane godziny otwarcia nie są poprawne.', true); return false; } metadata['workhours[]'][i] = from.length == 2 ? metadata['workhours[][]'][i]['from']+' - '+metadata['workhours[][]'][i]['to'] : ''; } } var days = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun']; var workhoursstr = []; var summary = []; for (var i = 0; i < days.length; i++) { if (i == 0 || summary[summary.length-1].hours != metadata['workhours[]'][days[i]]) { summary.push({from: i, to: i, hours: metadata['workhours[]'][days[i]]}); } else { summary[summary.length-1].to = i; } } days = ['pn', 'wt', 'śr', 'cz', 'pt', 'sb', 'nd']; for (i = 0; i < summary.length; i++) { if (summary[i].hours) { workhoursstr.push((summary[i].from != summary[i].to ? days[summary[i].from]+' - ' : '')+days[summary[i].to]+': '+summary[i].hours); } } metadata.workhours = workhoursstr.join(",\n"); var postalRG = new RegExp("^[0-9]{2}-[0-9]{3}$"); if (metadata.postal_code && !postalRG.test(metadata.postal_code.replace(/\s+/g, ''))) { this.showOverlay('Wpisany kod pocztowy nie jest poprawny.', true); return false; } this.vcardCategorySelect.toggle(false); this.vcardPreviewUpdate(); this.vcardPreviewHide(); return true; case 3: var companyFields = ['name', 'city', 'address', 'postal_code', 'phone']; var metadata = this.campaign.metadata; for (var i = 0; i < companyFields.length; i++) { if (!metadata.company[companyFields[i]] && metadata[companyFields[i]]) { metadata.company[companyFields[i]] = $('field_vcard_c_'+companyFields[i]).value = metadata[companyFields[i]]; } } if (tinyMCE.editors['field_vcard_description']) { tinyMCE.editors['field_vcard_description'].execCommand('mceCleanup'); } return true; case 4: var metadata = this.campaign.metadata.company; var required = []; if (!metadata.name) required.push('nazwę'); if (!metadata.city) required.push('miasto'); if (!metadata.address) required.push('adres'); if (!metadata.postal_code) required.push('kod pocztowy'); if (required.length > 0) { this.showOverlay('Proszę podać '+required.join(', ')+'.', true); return false; } if (metadata.tin && !this.isTin(metadata.tin)) { this.showOverlay('Wpisany NIP nie jest poprawny.', true); return false; } if (this.options.webuser_consent && !this.webuserConsentDataCheckbox.checked) { this.showOverlay('Do utrzymania danych potrzebne jest wyrażenie zgody na przetwarzanie danych osobowych.', true); return false; } return true; } return true; }, vcardImageListChange: function (list) { if (list == 'pic') { this.campaign.metadata.pics = []; for (var i = 0; i < this.imageLists['list_vcard_pic'].src.length; i++) { this.campaign.metadata.pics.push(this.imageLists['list_vcard_pic'].src[i]); } } else if (list == 'logo') { this.campaign.metadata.logo = this.imageLists['list_vcard_logo'].src.length > 0 ? this.imageLists['list_vcard_logo'].src[0] : ''; } }, vcardAddKeyword: function (keyword, updatemeta) { if (!keyword) { keyword = this.trim($('field_vcard_keyword').value); } if (keyword) { keyword = keyword.split(/\s*[^\w\dĄĆĘÓŁŃŚŻŹąćęółńśżź ]+\s*/); var list = $('list_vcard_keywords'); if (updatemeta) { if (!this.campaign.metadata.keywords) { this.campaign.metadata.keywords = []; } if (this.campaign.metadata.keywords.length >= 20 || this.campaign.metadata.keywords.join('').length >= 200) { this.showOverlay('Limit 20 słów kluczowych lub 200 znaków został wykorzystany.', true); return; } var keywords = this.campaign.metadata.keywords; if (keywords.length == 0) { list.innerHTML = ''; } for (var j = 0; j < keyword.length; j++) { keyword[j] = this.trim(keyword[j].toLowerCase()); if (!keyword[j]) continue; if (keywords.length >= 20 || keywords.join('').length + keyword[j].length > 200) { keyword = keyword.slice(j); $('field_vcard_keyword').value = keyword.join(','); this.showOverlay('Limit 20 słów kluczowych lub 200 znaków został wykorzystany.
Słowa '+keyword.join(', ')+' nie zostały dodane.', true); return; } for (var i = 0; i < keywords.length; i++) { if (keywords[i] == keyword[j]) { if (keyword.length == 1) { this.showOverlay('Podane słowo kluczowe zostało już dodane.', true); return; } else { continue; } } } if (keywords[i] != keyword[j]) { keywords.push(keyword[j]); var id = new Date().getTime()+'_'+(Math.random()*Math.random()).toString().substr(2); list.appendChild(DIV({'id': 'item_vcard_keyword_'+id, 'style': 'float: left'}, keyword[j], IMG({'src': 'i/image_remove.png', 'id': 'item_vcard_keyword_'+id+'_remove'}))); connect('item_vcard_keyword_'+id+'_remove', 'onclick', this, partial(this.vcardRemoveKeyword, id, keyword[j])); } } $('field_vcard_keyword').value = ''; $('field_vcard_keyword').focus(); this.autoSave(); } else { var id = new Date().getTime()+'_'+(Math.random()*Math.random()).toString().substr(2); list.appendChild(DIV({'id': 'item_vcard_keyword_'+id, 'style': 'white-space: nowrap; float: left'}, keyword, IMG({'src': 'i/image_remove.png', 'id': 'item_vcard_keyword_'+id+'_remove'}))); connect('item_vcard_keyword_'+id+'_remove', 'onclick', this, partial(this.vcardRemoveKeyword, id, keyword)); } } }, vcardRemoveKeyword: function (id, keyword) { disconnectAll('item_vcard_keyword_'+id+'_remove'); removeElement('item_vcard_keyword_'+id); var keywords = this.campaign.metadata.keywords; for (var i = 0; i < keywords.length; i++) { if (keywords[i] == keyword) { keywords.splice(i,1); this.autoSave(); break; } } if (keywords.length == 0) { $('list_vcard_keywords').innerHTML = 'brak słów kluczowych'; } }, vcardSave: function() { /*if (tinyMCE.editors['field_vcard_description']) { tinyMCE.editors['field_vcard_description'].execCommand('mceCleanup'); }*/ this.campaign.metadata.owner_id = this.vcardOwnerCheckbox.checked; this.campaign.geometry = this.picon; }, vcardPreviewGetItem: function() { var item = {_external: {}}; MochiKit.Base.update(item, { name: $('field_vcard_name').value, department: $('field_vcard_department').value, description: $('field_vcard_shortdesc').value.replace(/\n/g, "
"), address: $('field_vcard_address').value, street_name: $('field_vcard_address').value, street_house: '', city: $('field_vcard_city').value, city_name: $('field_vcard_city').value, postal_code: $('field_vcard_postal_code').value, phone: $('field_vcard_phone').value, phone_parsed: this.campaign.metadata['phone_parsed'], 'phone[]': this.campaign.metadata['phone[]'], email: $('field_vcard_email').value, url: $('field_vcard_url').value, /*url_label: $('field_vcard_url').value,*/ /*workhours: $('field_vcard_workhours').value,*/ 'workhours[]': {}, shortdesc: $('field_vcard_shortdesc').value.replace(/\n/g, "
"), logo: this.campaign.metadata.logo, pics: this.campaign.metadata.pics, cname: this.category ? this.category.name : '' }); var days = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun']; var dayfield, hours; for (var i = 0; i < days.length; i++) { dayfield = i < 5 && $('workhours_workdays_container').style.display == 'none' ? 'workdays' : days[i]; hours = {from: $('field_vcard_workhours_'+dayfield+'_from').value, to: $('field_vcard_workhours_'+dayfield+'_to').value}; for (var j in hours) { var hour = hours[j].match(/^(\d\d?):?(\d\d)?$/); if (hour && !hour[2]) hour[2] = '00'; if (!hour || parseInt(hour[1]) > 24 || parseInt(hour[2]) > 59) { hours[j] = false; } else { hours[j] = [hour[1], hour[2]]; } } if (hours['from'] && hours['to'] && ((parseInt(hours['from'][0]) < parseInt(hours['to'][0]) || parseInt(hours['to'][0]) < 6) || (parseInt(hours['from'][0]) == parseInt(hours['to'][0]) && parseInt(hours['from'][1]) < parseInt(hours['to'][1])))) { item['workhours[]'][days[i]] = hours['from'].join(':')+' - '+hours['to'].join(':'); } else { item['workhours[]'][days[i]] = ''; } } if (!item.pics.length) item.pics = null; var fields = ['name', 'department', 'address', 'city', 'email', 'phone', 'shortdesc']; for (var f = 0; f < fields.length; f++) { item[fields[f]] = this.htmlEncode(item[fields[f]]); } if (this.category && this.category.attr) { var attr = this.category.attr; var field = null; for (var i = 0; i < attr.length; i++) { switch (attr[i].t) { case 't': case 'ta': field = $('field_vcard_attr_'+attr[i].n); item[attr[i].n] = field.value; break; case 'c': item[attr[i].n] = attr[i].control.checked; break; case 's': item[attr[i].n] = attr[i].control.value.text; break; } } } return item; }, vcardPreviewUpdate: function () { if (this.step != 1) return; if (this.vcardHidePreviewTimeout) { clearTimeout(this.vcardHidePreviewTimeout); } var balloon = $('vcard_balloon_preview'); if (balloon.style.display == 'none') { balloon.style.visibility = 'hidden'; balloon.style.display = 'block'; } var layout = 'var str = \'\';\ var vitem = item;\ if (vitem.url && !vitem.url.match(/^https?:\\/\\//)) vitem.url = \'http://\'+vitem.url;\ if (vitem.url_ad) vitem.url_ad = vitem.url_ad.replace(/\\[\\[timestamp\\]\\]/g, new Date().getTime());\ var str = \'\';\ if (vitem.logo) {\ var logo = \'i/cache/\'+vitem.logo;\ var seppos = logo.lastIndexOf(\'.\');\ str += \'\';\ }\ str += \'
\'+vitem.name+\'
\'+vitem.cname+\'
\';\ var addr = {};\ if (vitem.address) addr.address = vitem.address + \', \' + vitem.city;\ if (vitem[\'workhours[]\']) {\ var cdate = new Date();\ cdate.hhmm = bind(function() {\ var h = this.getHours();\ var m = this.getMinutes();\ return (\'0\'+h).substr((\'0\'+h).length-2)+\':\'+(\'0\'+m).substr((\'0\'+m).length-2)\ }, cdate);\ if (typeof(vitem[\'workhours[]\']) == \'string\') vitem[\'workhours[]\'] = evalJSON(vitem[\'workhours[]\']);\ var whtoday = (vitem[\'workhours[]\'][[\'sun\',\'mon\',\'tue\',\'wed\',\'thu\',\'fri\',\'sat\'][cdate.getDay()]]);\ if (whtoday) {\ whtoday = whtoday.split(\' - \');\ addr.workhours = \'
Otwarte: \'+whtoday.join(\' - \')+\'
\';\ }\ } else if (vitem.workhours) {\ addr.workhours = vitem.workhours.replace(/\\n/g,\'
\');\ }\ if (vitem[\'phone[]\']) {\ if (typeof(vitem[\'phone[]\']) == \'string\') vitem[\'phone[]\'] = evalJSON(vitem[\'phone[]\']);\ for (var i = 0; i < vitem[\'phone[]\'].length; i++) {\ if (typeof(vitem[\'phone[]\'][i]) == \'string\') {\ addr.phone = vitem[\'phone[]\'][i];\ break;\ } else {\ var phonekey = keys(vitem[\'phone[]\'][i])[0];\ if (phonekey == \'\' || phonekey.match(/^tel(\.|efon)?/i)) {\ addr.phone = vitem[\'phone[]\'][i][phonekey];\ break;\ }\ }\ }\ }\ if (!addr.phone && (vitem.phone_parsed || vitem.phone)) addr.phone = vitem.phone_parsed ? vitem.phone_parsed : vitem.phone;\ if (vitem.url) addr.url = \'\'+(vitem.url_label ? vitem.url_label : vitem.url.replace(/^https?:\\/\\//, \'\'))+\'\';\ if (vitem.email) addr.email = \'\'+vitem.email+\'\';\ var addricon;\ for (var ai in addr) {\ str += \'
\'+addr[ai]+\'
\';\ }\ if (keys(addr).length) {\ str += \'
\';\ }\ if (vitem.shortdesc) str += \'
\'+vitem.shortdesc+\'
\';\ str;'; var item = this.vcardPreviewGetItem(); var content = $('vcard_balloon_preview_content'); if (this.category && this.category.layout) { if (item.logo) item.logo = 'i/cache/'+item.logo; content.innerHTML = function(self){return eval(self.category.layout);}(this); } else { content.innerHTML = function(self){return eval(layout);}(this); } var cdims = getElementDimensions(content); if (cdims.w && cdims.h) { var iconpos = getElementPosition('picon'); var icondims = getElementDimensions('picon'); var vppos = getViewportPosition(); var cheight = Math.min(cdims.h, 202); content.parentNode.style.height = cheight+'px'; if (cheight + 70 < iconpos.y - vppos.y) { update($('vcard_balloon_preview').style, {'left': (iconpos.x+Math.floor((icondims.w-300)/2))+'px', 'top': (iconpos.y-cheight-65)+'px', 'height': (cheight+53)+'px'}); $('vcard_balloon_preview_pin').style.cssText = 'bottom: -11px; left: '+Math.floor((300-16)/2)+'px; background: url(i/vcard_balloon_b_pin2.png) 0 0 no-repeat;'; } else { update($('vcard_balloon_preview').style, {'left': (iconpos.x+Math.floor((icondims.w-300)/2))+'px', 'top': (iconpos.y+25)+'px', 'height': (cheight+53)+'px'}); $('vcard_balloon_preview_pin').style.cssText = 'top: -11px; left: '+Math.floor((300-16)/2)+'px; background: url(i/vcard_balloon_t_pin2.png) 0 0 no-repeat;'; } $('vcard_balloon_preview_top').style.height = cheight+'px'; } balloon.style.visibility = 'visible'; this.vcardHidePreviewTimeout = setTimeout(this.vcardPreviewHide, 10000); }, vcardPreviewShow: function() { showElement('vcard_balloon_preview'); }, vcardPreviewHide: function() { hideElement('vcard_balloon_preview'); }, vcardExtPreviewSet: function() { var ta = $('field_vcard_description'); if (!ta) { ta = TEXTAREA({'id': 'field_vcard_description', 'style': 'width: 600px; height: 200px', 'value': this.campaign.metadata.description}); } else { this.resetImageList(); } if (tinyMCE.__initialized) { tinyMCE.editors['field_vcard_description'].execCommand('mceCleanup'); tinyMCE.execCommand('mceRemoveControl', false, 'field_vcard_description'); removeElement(ta); } var layout_extended = 'var str = \'\';\ var vitem = item;\ if (vitem.url && !vitem.url.match(/^https?:\\/\\//)) vitem.url = \'http://\'+vitem.url;\ if (vitem.url_ad) vitem.url_ad = vitem.url_ad.replace(/\\[\\[timestamp\\]\\]/g, new Date().getTime());\ var str = \'\';\ str += \'
\'+vitem.name+\'
\';\ var addr = {};\ if (vitem.address) addr.address = vitem.address + \', \' + vitem.city;\ if (vitem[\'workhours[]\']) {\ var cdate = new Date();\ cdate.hhmm = bind(function() {\ var h = this.getHours();\ var m = this.getMinutes();\ return (\'0\'+h).substr((\'0\'+h).length-2)+\':\'+(\'0\'+m).substr((\'0\'+m).length-2)\ }, cdate);\ if (typeof(vitem[\'workhours[]\']) == \'string\') vitem[\'workhours[]\'] = evalJSON(vitem[\'workhours[]\']);\ var whtoday = (vitem[\'workhours[]\'][[\'sun\',\'mon\',\'tue\',\'wed\',\'thu\',\'fri\',\'sat\'][cdate.getDay()]]);\ if (whtoday) {\ whtoday = whtoday.split(\' - \');\ addr.workhours = \'
Otwarte: \'+whtoday.join(\' - \')+\'
\';\ }\ } else if (vitem.workhours) {\ addr.workhours = vitem.workhours.replace(/\\n/g,\'
\');\ }\ if (vitem[\'phone[]\']) {\ if (typeof(vitem[\'phone[]\']) == \'string\') vitem[\'phone[]\'] = evalJSON(vitem[\'phone[]\']);\ addr.phone = [];\ for (var i = 0; i < vitem[\'phone[]\'].length; i++) {\ if (typeof(vitem[\'phone[]\'][i]) == \'string\') {\ addr.phone.push(vitem[\'phone[]\'][i]);\ } else {\ var phonekey = keys(vitem[\'phone[]\'][i])[0];\ addr.phone.push((phonekey ? phonekey+\': \' : \'\')+vitem[\'phone[]\'][i][phonekey]);\ }\ }\ if (addr.phone.length) {\ addr.phone = addr.phone.join(\'
\');\ } else {\ delete(addr.phone);\ }\ }\ if (!addr.phone && (vitem.phone || vitem.phone_parsed)) addr.phone = vitem.phone_parsed ? vitem.phone_parsed : vitem.phone;\ if (vitem.url) addr.url = \'\'+(vitem.url_label ? vitem.url_label : vitem.url.replace(/^https?:\\/\\//, \'\'))+\'\';\ if (vitem.email) addr.email = \'\'+vitem.email+\'\';\ var addricon;\ for (var ai in addr) {\ str += \'
\'+addr[ai]+\'
\';\ }\ if (keys(addr).length) {\ str += \'
\';\ }\ str += \'
\';\ if (item.pics) {\ for (var i = 0; i < item.pics.length; i++) {\ var extpos = item.pics[i].lastIndexOf(\'.\');\ str += \'\';\ }\ }\ str += \'
\';\ str += \'
\';\ if (item.description) {\ str += \'
\'+item.description+\'
\';\ }\ str += \'
\';\ var footer = \'\';if (item.logo) {var extpos = item.logo.lastIndexOf(\'.\');footer += \'\'}footer += item.name+\' - informacje pochodzą od właściciela\';\ [str, footer];'; var item = this.vcardPreviewGetItem(); item.description = ta.value; if (this.options.nick) { item.author = this.options.nick; } if (!isUndefinedOrNull(this.category.layout_extended)) { var preview = function(self){return eval(self.category.layout_extended);}(this); } else { var preview = function(self){return eval(layout_extended);}(this); } $('vcard_preview_header').innerHTML = item.name+'
'+item.name+'
';; $('vcard_preview_content').innerHTML = preview[0]; $('vcard_preview_notice').innerHTML = preview[1]; $('targeo-poi-vcardelem-description').style.clear = 'both'; $('targeo-poi-vcardelem-description').innerHTML = ''; $('targeo-poi-vcardelem-description').appendChild(ta); if (tinyMCE.__initialized) { tinyMCE.execCommand('mceAddControl', false, 'field_vcard_description'); } else { tinyMCEInit(); connect(tinyMCE, 'onChange', this, function(fieldId, content){if(fieldId=='field_vcard_description')metadata.description = content.replace(/]*data-mce-type[^>]*>\ufeff*<\/span>/g, '');this.autoSave()}); //connect(tinyMCE, 'onKeyUp', this, function(fieldId, content){if(fieldId=='field_vcard_description'){$('field_vcard_description').value = content; this.vcardPreviewUpdate();}}); //connect(tinyMCE, 'onExecCommand', this, function(fieldId, content){if(fieldId=='field_vcard_description'){$('field_vcard_description').value = content; this.vcardPreviewUpdate();}}); } //tinyMCE.editors['field_vcard_description'].setContent(!isUndefinedOrNull(metadata.description) ? metadata.description : ''); //$('field_vcard_description').value = metadata.description; $('targeo-poi-vcardelem-logo').innerHTML = ''; var list = $('list_vcard_logo'); if (!list) list = DIV({'id': 'list_vcard_logo'}); $('targeo-poi-vcardelem-logo').appendChild(list); this.createImageAddItem('list_vcard_logo'); if (item.logo) { this.createImageItem('item_vcard_logo', 'list_vcard_logo', {url: item.logo}); } $('targeo-poi-vcardelem-pic').innerHTML = ''; var list = $('list_vcard_pic'); if (!list) list = DIV({'id': 'list_vcard_pic'}); $('targeo-poi-vcardelem-pic').appendChild(list); this.createImageAddItem('list_vcard_pic'); if (item.pics && item.pics.length > 0) { for (var i = 0; i < item.pics.length; i++) { this.createImageItem('item_vcard_pic'+i, 'list_vcard_pic', {url: item.pics[i]}); } } }, vcardPositionEditorToggle: function(edit) { this.vcardPositionEditor = edit != null ? edit : !this.vcardPositionEditor; var mapOverlay = $('mapLiteOverlay'); var previewContainer = $('vcard_balloon_preview'); if (this.vcardPositionEditor) { //$('vcard_changeposition_link').innerHTML = 'pokaż podgląd'; Mapa.moveTo(this.picon); this.setIcon({url: _TARGEO_GLOBALS.url+'i/icons/pins/pin-b.png', w:27, h:28, x:9, y:25}); $('picon').style.background = 'none'; var vis = 'visible'; if (mapOverlay) hideElement(mapOverlay); if (previewContainer) hideElement(previewContainer); } else { //$('vcard_changeposition_link').innerHTML = 'zmień'; var zs = Math.pow(2, Mapa.opts().z-20); var x = Math.round((this.picon.x + 10.9) * 33333.33333333 / zs); var y = Math.round((this.picon.y - 72.0) * -50000.0 / zs); x = ((x + 122) / 33333.33333333 * zs - 10.9); y = ((y - 135) / - 50000.0 * zs + 72.0); Mapa.moveTo({x: x, y: y}); this.setIcon({url: _TARGEO_GLOBALS.url+'i/t.gif', w:16, h:16, x:8, y:8}); $('picon').style.background = 'url('+_TARGEO_GLOBALS.url+'i/poi/poi-iconset5.png) -'+this.category.bgoffset+'px 0 no-repeat'; var vis = 'hidden'; if (!mapOverlay) { mapOverlay = DIV({'id': 'mapLiteOverlay', 'style': 'width: '+this.mapSize.w+'px; height: '+this.mapSize.h+'px; background: url('+_TARGEO_GLOBALS.url+'i/t.gif) repeat; position: absolute; left: 0; top: 0; z-index: 100;'}); $('mapLite').appendChild(mapOverlay); var ff = /Gecko\//.test(navigator.userAgent); if (window.attachEvent) mapOverlay.attachEvent('onmousewheel', function(e){e.stopPropagation();}); else if (window.addEventListener) mapOverlay.addEventListener(ff ? 'DOMMouseScroll' : 'mousewheel', function(e){e.stopPropagation();}, false); if (window.attachEvent) previewContainer.attachEvent('onmousewheel', function(e){e.stopPropagation();}); else if (window.addEventListener) previewContainer.addEventListener(ff ? 'DOMMouseScroll' : 'mousewheel', function(e){e.stopPropagation();}, false); } var mappos = getElementPosition('mapLite'); $('mapLite').appendChild(mapOverlay); showElement(mapOverlay); //$('mapLite').appendChild(previewContainer); //setElementPosition(previewContainer, {x: 20, y: 80}); showElement(previewContainer); this.vcardPreviewUpdate(); } for (var i = 0; i < this.liteZoomControls.length; i++) { this.liteZoomControls[i].style.visibility = vis; } }, vcardGetParsedPhone: function() { var phone = $('field_vcard_phone').value; if (!this.djsonPhone) { this.djsonPhone = new DJSON(); } this.djson.setCallback(this.onSave, this); this.djsonPhone.setCallback(this.vcardOnGetParsedPhone, this); this.djsonPhone.requestAbort(_BASE_HREF+'index.html', {'a': 'poi_phoneparse', 'phone': phone}); }, vcardOnGetParsedPhone: function(json) { if ('phone_parsed' in json) { update(this.campaign.metadata, json); this.vcardPreviewUpdate(); } }, toggleComments: function(show) { var elements = getElementsByTagAndClassName('div', 'comment_row_older', 'comment_form'); var disp = !isUndefinedOrNull(show) ? (show ? 'block' : 'none') : (elements[0].style.display == 'block' ? 'none' : 'block'); for (var i = 0; i < elements.length; i++) { elements[i].style.display = disp; } var commheight = getElementDimensions('comment_form').h; $('mapbox_s1').style.top = (57+commheight)+'px'; //$('vcard_changeposition_link').parentNode.style.top = (30+commheight)+'px'; if ($('comment_toggle')) { $('comment_toggle').innerHTML = (disp == 'block' ? 'ukryj' : 'pokaż')+' starsze komentarze i odpowiedzi'; } } }); function TargeoShowCookieInfo(style, domain) { var cc = document.cookie.match(/(^|; ?)cc=(\d)/); if (!cc || cc.pop() < 2) { var infodiv = document.createElement('div'); infodiv.style.cssText = 'position: absolute; z-index: 32000; font-size: 11px; font-family: Arial, sans-serif; left: 50%; top: 3px; width: 340px; margin-left: -170px; margin-top: 0px; color: #555; text-align: justify;'; var overflow = ''; var info = 'Na naszych stronach używamy plików cookie (które możesz zablokować w ustawieniach przeglądarki lub użyć trybu prywatnego) oraz informacji o Twoich działaniach na stronie w celu dostarczenia dopasowanych treści (tzw. profilowanie). Należy również zapoznać się z poniższymi informacjami:
Warunki korzystania z usług Targeo
Informacje o przetwarzaniu danych osobowych
'; infodiv.innerHTML = '
'+info+'
OK
'; if (style) { for (var s in style) { infodiv.firstChild.style[s] = style[s]; if (s == 'width') { infodiv.firstChild.style.boxSizing = 'border-box'; infodiv.style[s] = style[s]; infodiv.style['marginLeft'] = -Math.floor(parseInt(style[s])/2)+'px'; } } } if (document.body.clientWidth < parseInt(infodiv.style.width)) { infodiv.style.width = document.body.clientWidth+'px'; infodiv.style.marginLeft = -Math.ceil(document.body.clientWidth/2)+'px'; infodiv.firstChild.style.boxSizing = 'border-box'; infodiv.firstChild.style.width = document.body.clientWidth+'px'; } document.body.appendChild(infodiv); var date = new Date(); var curTime = new Date().getTime(); date.setTime(curTime + (3600000 * 24 * 365)); document.cookie = 'cc=2; expires=' + date.toGMTString() + '; path=/; domain='+(domain ? domain : '.targeo.pl'); } }