/*Ajax=function(a){this.uId=getUId();this.xhr={xhrObject:null,params:a};this._create()};Ajax.prototype={_create:function(){if(window.XMLHttpRequest){try{this.xhr.xhrObject=new XMLHttpRequest()}catch(a){this.xhr.xhrObject=false}}else{ErrorManager.error("[Ajax] XHR not supported")}},sendData:function(a,b,g,f){var d=this;g=g.toUpperCase();if(this.xhr.xhrObject){if(g=="GET"){if(b){if(b.substring(0,1)=="?"){a=a+"&"+b}else{a=a+"?"+b}}try{this.xhr.xhrObject.open("GET",a);this.xhr.xhrObject.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8;");this.xhr.xhrObject.send(null)}catch(c){return false}}else{if(g=="POST"){try{this.xhr.xhrObject.open("POST",a,true);this.xhr.xhrObject.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8;");this.xhr.xhrObject.send(b)}catch(c){return false}}}this.xhr.xhrObject.onreadystatechange=function(){if(d.xhr.xhrObject.readyState==4&&!(d.xhr.xhrObject.status>=200&&d.xhr.xhrObject.status<400)){f.onfailure(d.xhr)}if(d.xhr.xhrObject.readyState==4&&(d.xhr.xhrObject.status>=200&&d.xhr.xhrObject.status<400)){f.onsuccess(d.xhr)}}}else{return false}return true}};function isUndefined(a){return(a===undefined)}function isset(a){return((!this.isUndefined(a))&&(a!==null))}function isString(a){return(typeof a=="string"||a instanceof String)}function isInteger(a){return(a.toString().search(/^-?[0-9]+$/)==0)}function isArray(a){if(a.constructor.toString().indexOf("Array")==-1){return false}else{return true}}function trim(a){return a.replace(/^\s\s/,"").replace(/\s\s*$/,"")}function $(a){if(isString(a)){return document.getElementById(a)}else{return a}}function _(b,a){try{if(isset(a)){var d=a.i18n}else{var d=i18n}var f=d[b];if(isUndefined(f)){f=b}return f}catch(c){return b}}function getUId(){return(new Date().getTime()-Math.ceil(Math.random()*1000))}function callMethodAfterDelay(d,e,b){var a=Array.prototype.slice.call(arguments,3);var c=function(){d[e].apply(d,a)};return setTimeout(c,b)}function round(c,b){if(!isset(b)){b=0}var a=Math.pow(10,b);return Math.round(c*a)/a}var CssManager={applyTransition:function(c,d,e,a,b){c.style.webkitTransitionProperty=d;c.style.webkitTransitionDuration=e;c.style.webkitTransitionDelay=a;c.style.webkitTransitionTimingFunction="";c.style.webkitTransitionTimingFunction=b},applyTransformTransition:function(c,d,a,b){this.applyTransition(c,"-webkit-transform",d,a,b)},getTransform:function(a){return window.getComputedStyle(a).webkitTransform},setTransform:function(b,a){b.style.webkitTransform=a},getTransformPosition:function(f){var a={x:null,y:null};var d=this.getTransform(f);if(PlatformManager.isAndroid==true){var e=new RegExp(/matrix/i);if(e.test(d)){var e=new RegExp("[, ()]+","g");var c=d.split(e);if(c.length>6&&c[0]=="matrix"){a.x=c[5];a.y=c[6]}}}else{var b=new WebKitCSSMatrix(d);a.x=b.m41;a.y=b.m42}return a},applyTranslate:function(b,a,c){if(isUndefined(b._cssTransform)){b._cssTransform={translate:this._getTranslateTransform(0,0,0),scale:this._getScaleTransform(1,1),rotate:this._getRotateTransform(0)}}b._cssTransform.translate=this._getTranslateTransform(a,c);this.setTransform(b,b._cssTransform.scale+" "+b._cssTransform.translate+" "+b._cssTransform.rotate)},applyScale:function(b,a,c){if(isUndefined(b._cssTransform)){b._cssTransform={translate:this._getTranslateTransform(0,0,0),scale:this._getScaleTransform(1,1),rotate:this._getRotateTransform(0)}}b._cssTransform.scale=this._getScaleTransform(a,c);this.setTransform(b,b._cssTransform.scale+" "+b._cssTransform.translate+" "+b._cssTransform.rotate)},applyRotate:function(a,b){if(isUndefined(a._cssTransform)){a._cssTransform={translate:this._getTranslateTransform(0,0,0),scale:this._getScaleTransform(1,1),rotate:this._getRotateTransform(0)}}a._cssTransform.rotate=this._getRotateTransform(b);this.setTransform(a,a._cssTransform.scale+" "+a._cssTransform.translate+" "+a._cssTransform.rotate)},addClass:function(c,b){var a=c.className;if((" "+a+" ").indexOf(" "+b+" ")<0){c.className=a+(a?" ":"")+b}},removeClass:function(c,b){var a=trim((" "+c.className+" ").replace(" "+b+" "," "));if(c.className!=a){c.className=a}},_getTranslateTransform:function(a,g){var b="";var e=a;if(!isset(e)){e=0}var d=g;if(!isset(d)){d=0}var c="0";var f=false;f=f||(isString(e)&&(e.indexOf("%",0)!=-1));f=f||(isString(d)&&(d.indexOf("%",0)!=-1));if(!f){e=e+"px";d=d+"px";c=c+"px"}if(PlatformManager.isAndroid==true){b="translate("+e+", "+d+")"}else{b="translate3d("+e+", "+d+", "+c+")"}return b},_getScaleTransform:function(a,e){var b="";var d=a;if(!isset(d)){d=1}var c=e;if(!isset(c)){c=1}b="scale("+d+", "+c+")";return b},_getRotateTransform:function(c){var b="";var a=c;if(!isset(a)){a=0}b="rotate("+a+"deg)";return b}};HTMLElement.prototype.getTopPosition=function(a){var c=0;var b=this;if(isset(a)){while(b&&b!=a){c+=b.offsetTop;b=b.offsetParent}}else{while(b){c+=b.offsetTop;b=b.offsetParent}}return c};HTMLElement.prototype.getLeftPosition=function(a){var c=0;var b=this;if(isset(a)){while(b&&b!=a){c+=b.offsetLeft;b=b.offsetParent}}else{while(b){c+=b.offsetLeft;b=b.offsetParent}}return c};HTMLElement.prototype.translate=function(a,b){CssManager.applyTranslate(this,a,b)};HTMLElement.prototype.scale=function(a,b){CssManager.applyScale(this,a,b)};HTMLElement.prototype.rotate=function(a){CssManager.applyRotate(this,a)};HTMLElement.prototype.listenToGesture=function(b,c,a){GestureManager.listenTo(this,b,c,a)};HTMLElement.prototype.unlistenToGesture=function(a,b){GestureManager.unlistenTo(this,a,b)};var ErrorManager={logLevel:0,error:function(a){if(this.logLevel==1){if(console!=undefined){console.log(a)}else{alert(a)}}}};var EventManager={subscribed_events:[],published_events:[],register:function(b){var a=this.published_events.length;for(var c=0;c<a;c++){if(this.published_events[c][0]==b){return}}this.published_events.push([b,this.published_events.length])},subscribe:function(a,b,d){var c=[a,b,d];this.subscribed_events.push(c)},unsubscribe:function(a,c,d){for(var b=0;b<this.subscribed_events.length;b++){if(this.subscribed_events[b][0]==a&&this.subscribed_events[b][1]==c&&this.subscribed_events[b][2]==d){this.subscribed_events.splice(b,1)}}},publish:function(b,d){var a=this.published_events.length;for(var c=0;c<a;c++){if(this.published_events[c][0]==b){this._dispatch(b,d)}}},_dispatch:function(b,e){var a=this.subscribed_events.length;for(var d=0;d<a;d++){if(this.subscribed_events[d]&&this.subscribed_events[d][0]==b){var c=null,f=null;if(this.subscribed_events[d][1]!=""&&this.subscribed_events[d][1]!==null){c=this.subscribed_events[d][1];f=this.subscribed_events[d][2];c[f].apply(c,[e])}else{c=window;f=this.subscribed_events[d][2];c[f].apply(c,[e])}}}}};HTMLElement.prototype.getTopPosition=function(a){var c=0;var b=this;if(isset(a)){while(b&&b!=a){c+=b.offsetTop;b=b.offsetParent}}else{while(b){c+=b.offsetTop;b=b.offsetParent}}return c};HTMLElement.prototype.getLeftPosition=function(a){var c=0;var b=this;if(isset(a)){while(b&&b!=a){c+=b.offsetLeft;b=b.offsetParent}}else{while(b){c+=b.offsetLeft;b=b.offsetParent}}return c};HTMLElement.prototype.translate=function(a,b){CssManager.applyTranslate(this,a,b)};HTMLElement.prototype.scale=function(a,b){CssManager.applyScale(this,a,b)};HTMLElement.prototype.rotate=function(a){CssManager.applyRotate(this,a)};HTMLElement.prototype.listenToGesture=function(b,c,a){GestureManager.listenTo(this,b,c,a)};HTMLElement.prototype.unlistenToGesture=function(a,b){GestureManager.unlistenTo(this,a,b)};var Layer={container:null,sublayer:null,added:false,visible:false,show:function(){if(!this.added){this._initDom()}if(!this.visible){this.sublayer.style.height=document.body.scrollHeight+"px";this.container.style.display="block";this.visible=true}},hide:function(){if(this.added&&this.visible){this.container.style.display="none";this.visible=false}},refresh:function(){if(this.added&&this.visible){this.sublayer.style.height=document.body.scrollHeight+"px"}},_initDom:function(){this.container=document.createElement("div");this.container.style.position="absolute";this.container.style.display="none";this.container.style.zIndex="998";this.container.style.top=0;this.container.style.width="100%";this.sublayer=document.createElement("div");this.sublayer.style.width="100%";this.sublayer.style.background="url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAFCAYAAABmWJ3mAAAAFUlEQVQImWM8ffr0TQYsgAmbIJUlAI4pA0T863pyAAAAAElFTkSuQmCC)";this.container.appendChild(this.sublayer);document.body.appendChild(this.container);this.added=true}};var PlatformManager={isWebkit:false,isMobile:false,isIPhone:false,isIPod:false,isIPad:false,isAndroid:false,isSafari:false,isMozilla:false,webkitVersion:0,webkitMinorVersion:0,webkitUpdateVersion:0,browserVersion:0,browserMinorVersion:0,browserUpdateVersion:0,osVersion:0,osMinorVersion:0,osUpdateVersion:0,supportGradient:false,getTouchStartEvent:function(){if(this.isMobile==true){return"touchstart"}else{return"mousedown"}},getTouchMoveEvent:function(){if(this.isMobile==true){return"touchmove"}else{return"mousemove"}},getTouchEndEvent:function(){if(this.isMobile==true){return"touchend"}else{return"mouseup"}},_updatePlatformInfo:function(){this.isWebkit=RegExp(" AppleWebKit/").test(navigator.userAgent);if(isset(navigator)&&isset(navigator.platform)){var c=new RegExp(/iphone/i);if(c.test(navigator.platform)){this.isIPhone=true}c=new RegExp(/ipod/i);if(c.test(navigator.platform)){this.isIPod=true}c=new RegExp(/ipad/i);if(c.test(navigator.platform)){this.isIPad=true}}if(isset(navigator)&&isset(navigator.appVersion)){var c=new RegExp(/android/i);if(c.test(navigator.appVersion)){this.isAndroid=true}var c=new RegExp(/safari/i);if(c.test(navigator.appVersion)){this.isSafari=true;var b=this._extractVersion(navigator.appVersion,"( Version/)([^ ]+)",".");this.browserVersion=b.major;this.browserMinorVersion=b.minor;this.browserUpdateVersion=b.update}}if(this.isSafari==false){this.isMozilla=RegExp(/mozilla/i).test(navigator.userAgent)}this.isMobile=this.isIPhone||this.isIPod||this.isAndroid||RegExp(" Mobile/").test(navigator.userAgent);if(this.isWebkit){var b=this._extractVersion(navigator.userAgent,"( AppleWebKit/)([^ ]+)",".");this.webkitVersion=b.major;this.webkitMinorVersion=b.minor;this.webkitUpdateVersion=b.update;this.supportGradient=(this.webkitVersion>=528)}if(this.isMobile&&isset(navigator)&&isset(navigator.appVersion)){if(this.isAndroid){var a=this._extractVersion(navigator.appVersion,"( Android )([^ ]+)",".");this.osVersion=a.major;this.osMinorVersion=a.minor;this.osUpdateVersion=a.update}else{var a=this._extractVersion(navigator.appVersion,"( OS )([^ ]+)","_");this.osVersion=a.major;this.osMinorVersion=a.minor;this.osUpdateVersion=a.update}}return this},_extractVersion:function(h,e,g){var b={major:0,minor:0,update:0};var a=RegExp(e).exec(h);if(isset(a)&&a.length>1){var d=a[2];var f=RegExp("[^\\"+g+"0-9]").exec(d);if(isset(f)){d=d.slice(0,f.index)}var c=d.split(g);if(c.length>0){b.major=c[0]}if(c.length>1){b.minor=c[1]}if(c.length>2){b.update=c[2]}}return b}}._updatePlatformInfo();var TouchManager={_touchElements:[],_START_EVENT:"start",_MOVE_EVENT:"move",_END_EVENT:"end",_GESTURE_START_EVENT:"gesturestart",_GESTURE_CHANGE_EVENT:"gesturechange",_GESTURE_END_EVENT:"gestureend",_EVENT_MAP:{start:PlatformManager.getTouchStartEvent(),move:PlatformManager.getTouchMoveEvent(),end:PlatformManager.getTouchEndEvent(),gesturestart:"gesturestart",gesturechange:"gesturechange",gestureend:"gestureend"},addListener:function(e,a,l,h,d){if(isUndefined(this._EVENT_MAP[a])){ErrorManager.error("[TouchManager] Cannot add listener for unknown eventType: "+a);return false}var k=null;var g=this._getTouchElementIndex(e);if(g==null){var c=true;if(d===false){c=false}var i={domNode:e,tracking:c};k=new TouchElement(i);this._touchElements.push(k)}else{k=this._touchElements[g]}if(!k.isListening(a)){var b=false;if(a==this._START_EVENT){b=true}var f=this;k.handle=function(m){f._handleEvent(m,k)};k.domNode.addEventListener(this._EVENT_MAP[a],k.handle,b)}var j=false;if(h===true){j=true}k.addEventCallback(a,l,j)},removeListener:function(e,d,f){var c=this._getTouchElementIndex(e);if(c!=null){var b=this._touchElements[c];b.removeEventCallback(d,f);var a=false;if(d==this._START_EVENT){a=true}if(!b.isListening(d)){b.domNode.removeEventListener(this._EVENT_MAP[d],b.handle,a)}}},getTouchProperties:function(b){var a={};a.x=b.pageX;a.y=b.pageY;a.target=b.target;return a},_getTouchElementIndex:function(c){for(var a=0;a<this._touchElements.length;a++){var b=this._touchElements[a];if(b.domNode==c){return a}}return null},_handleEvent:function(c,a){var b=this._getEventType(c.type);if(b==null){return}var d=this._createManagedEvent(b,c);if(d.isPublished(a.domNode)){return}if(!a.isListening(this._START_EVENT)||a.tracking==false){a.tracked=true}else{if(b==this._START_EVENT){a.tracked=true}}if(a.tracked==true){if(b==this._END_EVENT){a.tracked=false}a.notifyEvent(d)}},_createManagedEvent:function(c,f){var a={};a.type=c;a.srcEvent=f;a.timestamp=f.timeStamp;if(!a.timestamp){a.timestamp=new Date().getTime()}if(PlatformManager.isMobile==true){if(c==this._GESTURE_START_EVENT||c==this._GESTURE_CHANGE_EVENT||c==this._GESTURE_END_EVENT){a.target=f.target;a.x=0;a.y=0}else{var d=null;if(c==this._END_EVENT){if(f.changedTouches&&f.changedTouches.length>0){d=f.changedTouches[0]}}else{if(f.targetTouches&&f.targetTouches.length>0){d=f.targetTouches[0]}}if(d!=null){var b=this.getTouchProperties(d);a.x=b.x;a.y=b.y;a.target=b.target}}}else{var b=this.getTouchProperties(f);a.x=b.x;a.y=b.y;a.target=b.target}return new ManagedEvent(a)},_getEventType:function(b){for(type in this._EVENT_MAP){var a=this._EVENT_MAP[type];if(a==b){return type}}return null}};TouchElement=function(a){this.uId=getUId();this.domNode=a.domNode;this.tracking=a.tracking;this.tracked=false;this._eventListened=[];if(this._validateProperties()===false){return}};TouchElement.prototype.addEventCallback=function(c,i,g){var k=this._isValidCallback(i);if(k==false){ErrorManager.error("[TouchElement] Invalid callback");return false}var h=this._getListenedEvent(c);if(h==null){h={type:c,preventDefault:g,callbacks:[]};this._eventListened.push(h)}else{var f=h.callbacks;for(var d=0;d<f.length;d++){var e=f[d];var b=e.context;var a=e.method;if(i.context==e.context&&i.method==e.method){return false}}}h.callbacks.push(i);return true};TouchElement.prototype.removeEventCallback=function(b,h){var i=this._isValidCallback(h);if(i==false){ErrorManager.error("[TouchElement] Invalid callback");return false}var g=this._getListenedEvent(b);if(g==null){return false}var f=g.callbacks;for(var d=0;d<f.length;d++){var e=f[d];var c=e.context;var a=e.method;if(h.context==e.context&&h.method==e.method){g.callbacks.splice(d,1);break}}return true};TouchElement.prototype.isListening=function(a){var b=this._getListenedEvent(a);if(b!=null&&b.callbacks.length>0){return true}return false};TouchElement.prototype.notifyEvent=function(b){var i=this._getListenedEvent(b.type);if(i!=null){if(i.preventDefault==true){b.preventDefault()}var g=i.callbacks;for(var e=0;e<g.length;e++){var f=g[e];var d=f.context;var a=f.method;var c=f.arguments;var h=[b];if(isset(c)&&c.length>0){h=h.concat(c)}d[a].apply(d,h)}}b.setPublished(true,this.domNode)};TouchElement.prototype._getListenedEvent=function(c){for(var b=0;b<this._eventListened.length;b++){var a=this._eventListened[b];var d=a.type;if(d==c){return a}}return null};TouchElement.prototype._isValidCallback=function(b){var a=true;a=a&&isset(b);a=a&&isset(b.context);a=a&&isset(b.method);return a};TouchElement.prototype._validateProperties=function(){if(!isset(this.domNode)||this.domNode==""){ErrorManager.error("[TouchElement] domNode must be specified");return false}};ManagedEvent=function(a){this.uId=getUId();this.type=a.type;this.x=a.x;this.y=a.y;this.timestamp=a.timestamp;this.target=a.target;this.srcEvent=a.srcEvent;if(isUndefined(this.srcEvent._publishedNodes)){this.srcEvent._publishedNodes=[]}if(this._validateProperties()===false){return}};ManagedEvent.prototype.isPublished=function(b){if(this.srcEvent._publishedNodes.length==0){return false}var a=this._getPublishedNodeIndex(b);return this.srcEvent._publishedNodes[a].state};ManagedEvent.prototype.setPublished=function(d,b){var a=this._getPublishedNodeIndex(b);var c=false;if(d===true){c=true}this.srcEvent._publishedNodes[a].state=c};ManagedEvent.prototype.preventDefault=function(){this.srcEvent.preventDefault()};ManagedEvent.prototype.stopPropagation=function(){this.srcEvent.stopPropagation()};ManagedEvent.prototype.dispatch=function(b){var a=null;if(PlatformManager.isMobile==true){a=this._createEventWithTouch(this.srcEvent)}else{a=this._createEventWithMouse(this.srcEvent)}a._publishedNodes=this.srcEvent._publishedNodes;b.dispatchEvent(a)};ManagedEvent.prototype._getPublishedNodeIndex=function(b){for(var a=0;a<this.srcEvent._publishedNodes.length;a++){var d=this.srcEvent._publishedNodes[a];var c=d.node;if(b==c){return a}}this.srcEvent._publishedNodes.push({node:b,state:false});return(this.srcEvent._publishedNodes.length-1)};ManagedEvent.prototype._createEventWithTouch=function(a){var b=a;var c=document.createEvent("TouchEvent");c.initTouchEvent(a.type,b.bubbles,b.cancelable,window,b.detail,b.screenX,b.screenY,b.clientX,b.clientY,b.ctrlKey,b.altKey,b.shiftKey,b.metaKey,b.touches,b.targetTouches,b.changedTouches,b.scale,b.rotation);if(PlatformManager.isAndroid==true){c.initUIEvent(b.type,b.bubbles,b.cancelable,window,b.detail)}return c};ManagedEvent.prototype._createEventWithMouse=function(a){var b=a;var c=document.createEvent("MouseEvent");c.initMouseEvent(a.type,b.bubbles,b.cancelable,document.defaultView,b.detail,b.screenX,b.screenY,b.clientX,b.clientY,b.ctrlKey,b.altKey,b.shiftKey,b.metaKey,b.metaKey,b.button,b.relatedTarget);return c};ManagedEvent.prototype._validateProperties=function(){if(!isset(this.type)||this.type==""){ErrorManager.error("[ManagedEvent] type must be specified");return false}if(isUndefined(this.x)){ErrorManager.error("[ManagedEvent] x must be specified");return false}if(isUndefined(this.y)){ErrorManager.error("[ManagedEvent] y must be specified");return false}if(!isset(this.timestamp)){ErrorManager.error("[ManagedEvent] timestamp must be specified");return false}if(isUndefined(this.target)){ErrorManager.error("[ManagedEvent] target must be specified");return false}if(!isset(this.srcEvent)){ErrorManager.error("[ManagedEvent] srcEvent must be specified");return false}};WindowManager=function(){if(isUndefined(WindowManager.singleton)){this.uId=1;this._properties=null;this._handlers=null;this._initialized=false;this._initWindowManager();this._initListeners();this._registerEvents();WindowManager.singleton=this}else{return WindowManager.singleton}};WindowManager.prototype={VERTICAL_ORIENTATION:"vertical",HORIZONTAL_ORIENTATION:"horizontal",getProperties:function(){return this._properties},_initWindowManager:function(){this._properties={};this._updateScreen();this._updateSize();this._initialized=true},_updateScreen:function(){this._properties.screenWidth=screen.width;this._properties.screenHeight=screen.height},_updateSize:function(){var a=false;if(this._properties.width!=window.innerWidth&&window.innerWidth>0){this._properties.width=window.innerWidth;a=true}if(this._properties.height!=window.innerHeight&&window.innerHeight>0){this._properties.height=window.innerHeight;a=true}if(a){var b=false;if(this._properties.screenWidth>=this._properties.width){if(this._properties.orientation!=this.VERTICAL_ORIENTATION){this._properties.orientation=this.VERTICAL_ORIENTATION;b=true}}else{if(this._properties.orientation!=this.HORIZONTAL_ORIENTATION){this._properties.orientation=this.HORIZONTAL_ORIENTATION;b=true}}if(b&&this._initialized==true){EventManager.publish("/WindowManager/events/orientationchange",this._properties)}}return a},_handleResize:function(a){if(this._updateSize()){EventManager.publish("/WindowManager/events/resize",this._properties)}},_handleScroll:function(a){if(this._updateSize()){EventManager.publish("/WindowManager/events/resize",this._properties)}},_initListeners:function(){var a=this;this._handlers={resizeHandler:function(b){a._handleResize(b)},scrollHandler:function(b){a._handleScroll(b)}};window.addEventListener("resize",this._handlers.resizeHandler,true);window.addEventListener("scroll",this._handlers.scrollHandler,true)},_registerEvents:function(){EventManager.register("/WindowManager/events/resize");EventManager.register("/WindowManager/events/orientationchange")}};*/

