var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
function ControlVersion()
{
var version;
var axo;
var e;
try {
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
version = axo.GetVariable("$version");
} catch (e) {
}
if (!version)
{
try {
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
version = "WIN 6,0,21,0";
axo.AllowScriptAccess = "always";
version = axo.GetVariable("$version");
} catch (e) {
}
}
if (!version)
{
try {
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
version = axo.GetVariable("$version");
} catch (e) {
}
}
if (!version)
{
try {
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
version = "WIN 3,0,18,0";
} catch (e) {
}
}
if (!version)
{
try {
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
version = "WIN 2,0,0,11";
} catch (e) {
version = -1;
}
}
return version;
}
function GetSwfVer(){
var flashVer = -1;
if (navigator.plugins != null && navigator.plugins.length > 0) {
if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
var descArray = flashDescription.split(" ");
var tempArrayMajor = descArray[2].split(".");
var versionMajor = tempArrayMajor[0];
var versionMinor = tempArrayMajor[1];
if ( descArray[3] != "" ) {
tempArrayMinor = descArray[3].split("r");
} else {
tempArrayMinor = descArray[4].split("r");
}
var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
}
}
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
else if ( isIE && isWin && !isOpera ) {
flashVer = ControlVersion();
}
return flashVer;
}
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
versionStr = GetSwfVer();
if (versionStr == -1 ) {
return false;
} else if (versionStr != 0) {
if(isIE && isWin && !isOpera) {
tempArray         = versionStr.split(" "); 				tempString        = tempArray[1];						versionArray      = tempString.split(",");			} else {
versionArray      = versionStr.split(".");
}
var versionMajor      = versionArray[0];
var versionMinor      = versionArray[1];
var versionRevision   = versionArray[2];
if (versionMajor > parseFloat(reqMajorVer)) {
return true;
} else if (versionMajor == parseFloat(reqMajorVer)) {
if (versionMinor > parseFloat(reqMinorVer))
return true;
else if (versionMinor == parseFloat(reqMinorVer)) {
if (versionRevision >= parseFloat(reqRevision))
return true;
}
}
return false;
}
}
function AC_AddExtension(src, ext)
{
if (src.indexOf('?') != -1)
return src.replace(/\?/, ext+'?');
else
return src + ext;
}
function AC_Generateobj(objAttrs, params, embedAttrs)
{
var str = '';
if (isIE && isWin && !isOpera)
{
str += '<object ';
for (var i in objAttrs)
str += i + '="' + objAttrs[i] + '" ';
for (var i in params)
str += '><param name="' + i + '" value="' + params[i] + '" /> ';
str += '></object>';
} else {
str += '<embed ';
for (var i in embedAttrs)
str += i + '="' + embedAttrs[i] + '" ';
str += '> </embed>';
}
document.write(str);
}
function AC_FL_RunContent(){
var ret =
AC_GetArgs
(  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
, "application/x-shockwave-flash"
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
var ret = new Object();
ret.embedAttrs = new Object();
ret.params = new Object();
ret.objAttrs = new Object();
for (var i=0; i < args.length; i=i+2){
var currArg = args[i].toLowerCase();
switch (currArg){
case "classid":
break;
case "pluginspage":
ret.embedAttrs[args[i]] = args[i+1];
break;
case "src":
case "movie":
args[i+1] = AC_AddExtension(args[i+1], ext);
ret.embedAttrs["src"] = args[i+1];
ret.params[srcParamName] = args[i+1];
break;
case "onafterupdate":
case "onbeforeupdate":
case "onblur":
case "oncellchange":
case "onclick":
case "ondblClick":
case "ondrag":
case "ondragend":
case "ondragenter":
case "ondragleave":
case "ondragover":
case "ondrop":
case "onfinish":
case "onfocus":
case "onhelp":
case "onmousedown":
case "onmouseup":
case "onmouseover":
case "onmousemove":
case "onmouseout":
case "onkeypress":
case "onkeydown":
case "onkeyup":
case "onload":
case "onlosecapture":
case "onpropertychange":
case "onreadystatechange":
case "onrowsdelete":
case "onrowenter":
case "onrowexit":
case "onrowsinserted":
case "onstart":
case "onscroll":
case "onbeforeeditfocus":
case "onactivate":
case "onbeforedeactivate":
case "ondeactivate":
case "type":
case "codebase":
case "id":
ret.objAttrs[args[i]] = args[i+1];
break;
case "width":
case "height":
case "align":
case "vspace":
case "hspace":
case "class":
case "title":
case "accesskey":
case "name":
case "tabindex":
ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
break;
default:
ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
}
}
ret.objAttrs["classid"] = classid;
if (mimeType) ret.embedAttrs["type"] = mimeType;
return ret;
}
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
function ControlVersion()
{
var version;
var axo;
var e;
try {
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
version = axo.GetVariable("$version");
} catch (e) {
}
if (!version)
{
try {
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
version = "WIN 6,0,21,0";
axo.AllowScriptAccess = "always";
version = axo.GetVariable("$version");
} catch (e) {
}
}
if (!version)
{
try {
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
version = axo.GetVariable("$version");
} catch (e) {
}
}
if (!version)
{
try {
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
version = "WIN 3,0,18,0";
} catch (e) {
}
}
if (!version)
{
try {
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
version = "WIN 2,0,0,11";
} catch (e) {
version = -1;
}
}
return version;
}
function GetSwfVer(){
var flashVer = -1;
if (navigator.plugins != null && navigator.plugins.length > 0) {
if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
var descArray = flashDescription.split(" ");
var tempArrayMajor = descArray[2].split(".");
var versionMajor = tempArrayMajor[0];
var versionMinor = tempArrayMajor[1];
var versionRevision = descArray[3];
if (versionRevision == "") {
versionRevision = descArray[4];
}
if (versionRevision[0] == "d") {
versionRevision = versionRevision.substring(1);
} else if (versionRevision[0] == "r") {
versionRevision = versionRevision.substring(1);
if (versionRevision.indexOf("d") > 0) {
versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
}
}
var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
}
}
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
else if ( isIE && isWin && !isOpera ) {
flashVer = ControlVersion();
}
return flashVer;
}
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
versionStr = GetSwfVer();
if (versionStr == -1 ) {
return false;
} else if (versionStr != 0) {
if(isIE && isWin && !isOpera) {
tempArray         = versionStr.split(" "); 				tempString        = tempArray[1];						versionArray      = tempString.split(",");			} else {
versionArray      = versionStr.split(".");
}
var versionMajor      = versionArray[0];
var versionMinor      = versionArray[1];
var versionRevision   = versionArray[2];
if (versionMajor > parseFloat(reqMajorVer)) {
return true;
} else if (versionMajor == parseFloat(reqMajorVer)) {
if (versionMinor > parseFloat(reqMinorVer))
return true;
else if (versionMinor == parseFloat(reqMinorVer)) {
if (versionRevision >= parseFloat(reqRevision))
return true;
}
}
return false;
}
}
function AC_AddExtension(src, ext)
{
if (src.indexOf('?') != -1)
return src.replace(/\?/, ext+'?');
else
return src + ext;
}
function AC_Generateobj(objAttrs, params, embedAttrs)
{
var str = '';
if (isIE && isWin && !isOpera)
{
str += '<object ';
for (var i in objAttrs)
{
str += i + '="' + objAttrs[i] + '" ';
}
str += '>';
for (var i in params)
{
str += '<param name="' + i + '" value="' + params[i] + '" /> ';
}
str += '</object>';
}
else
{
str += '<embed ';
for (var i in embedAttrs)
{
str += i + '="' + embedAttrs[i] + '" ';
}
str += '> </embed>';
}
document.write(str);
}
function AC_FL_RunContent(){
var ret =
AC_GetArgs
(  arguments, "", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
, "application/x-shockwave-flash"
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_SW_RunContent(){
var ret =
AC_GetArgs
(  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
, null
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
var ret = new Object();
ret.embedAttrs = new Object();
ret.params = new Object();
ret.objAttrs = new Object();
for (var i=0; i < args.length; i=i+2){
var currArg = args[i].toLowerCase();
switch (currArg){
case "classid":
break;
case "pluginspage":
ret.embedAttrs[args[i]] = args[i+1];
break;
case "src":
case "movie":
args[i+1] = AC_AddExtension(args[i+1], ext);
ret.embedAttrs["src"] = args[i+1];
ret.params[srcParamName] = args[i+1];
break;
case "onafterupdate":
case "onbeforeupdate":
case "onblur":
case "oncellchange":
case "onclick":
case "ondblclick":
case "ondrag":
case "ondragend":
case "ondragenter":
case "ondragleave":
case "ondragover":
case "ondrop":
case "onfinish":
case "onfocus":
case "onhelp":
case "onmousedown":
case "onmouseup":
case "onmouseover":
case "onmousemove":
case "onmouseout":
case "onkeypress":
case "onkeydown":
case "onkeyup":
case "onload":
case "onlosecapture":
case "onpropertychange":
case "onreadystatechange":
case "onrowsdelete":
case "onrowenter":
case "onrowexit":
case "onrowsinserted":
case "onstart":
case "onscroll":
case "onbeforeeditfocus":
case "onactivate":
case "onbeforedeactivate":
case "ondeactivate":
case "type":
case "codebase":
case "id":
ret.objAttrs[args[i]] = args[i+1];
break;
case "width":
case "height":
case "align":
case "vspace":
case "hspace":
case "class":
case "title":
case "accesskey":
case "name":
case "tabindex":
ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
break;
default:
ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
}
}
ret.objAttrs["classid"] = classid;
if (mimeType) ret.embedAttrs["type"] = mimeType;
return ret;
}
window.domHelper = new function()
{
this.setTextContent = function(element, text)
{
if (typeof element == 'object' && typeof text != 'undefined')
{
while(element.firstChild)
{
element.removeChild(element.firstChild);
}
var textNode = document.createTextNode(text);
element.appendChild(textNode);
}
}
this.formatNumber = function(number, decimals)
{
number = number.toString();
if (number.length < decimals)
{
for (var a=decimals-number.length; a>0; a--)
{
number = '0'+number;
}
}
return number;
}
this.addClass = function(element, className)
{
if (element)
{
var elementClassName = element.className + "";
if (-1 == elementClassName.indexOf(className))
{
if (elementClassName == '')
{
element.className = className;
}
else
{
element.className += " " + className;
}
}
}
}
this.removeClass = function(element, className)
{
if (element)
{
var elementClassName = element.className + "";
if (-1 != elementClassName.indexOf(className))
{
if (-1 != elementClassName.indexOf(className + " "))
{
className += " ";
}
else if(-1 != elementClassName.indexOf(" " + className))
{
className = " " + className;
}
elementClassName = elementClassName.replace(className, "");
element.className = elementClassName;
}
}
}
this.getElementPositions = function(domElement)
{
var elementLeft = 0;
var elementTop = 0;
if (domElement.offsetParent)
{
var elementLeft = domElement.offsetLeft;
var elementTop = domElement.offsetTop;
while (domElement = domElement.offsetParent)
{
if (domElement.tagName != 'body' && domElement.tagName != 'BODY')
{
elementLeft += domElement.offsetLeft - domElement.scrollLeft;
elementTop += domElement.offsetTop - domElement.scrollTop;
}
else
{
elementLeft += domElement.offsetLeft;
elementTop += domElement.offsetTop;
}
}
}
return {x: elementLeft,y: elementTop};
}
this.isAChildOf = function(_parent, _child)
{
if (_parent === _child)
{
return false;
}
while (_child && _child !== _parent)
{
_child = _child.parentNode;
}
return _child === _parent;
}
}
window.eventsManager = new function()
{
var init = function()
{
self.fireEvent = fireEvent_standards;
if (navigator.appName == "Microsoft Internet Explorer")
{
if (navigator.appVersion.match(/MSIE ([\d.]+);/))
{
var version = navigator.appVersion.match(/MSIE ([\d.]+);/)[1];
if (version < 9)
{
self.fireEvent = fireEvent_ie;
}
}
}
}
this.getEventTarget = function(event)
{
var eventElement = null;
if (event.target)
{
eventElement = event.target;
}
else if (event.srcElement)
{
eventElement = event.srcElement;
}
return eventElement;
}
this.addHandler = function(object, event, handler)
{
if (object == null || typeof object != 'object' && typeof object != 'function')
{
return false;
}
if (handler == null || typeof handler != 'function')
{
return false;
}
if (object.addEventListener)
{
if (event === 'mouseenter')
{
object.addEventListener('mouseover', mouseEnter(handler), false);
}
else if (event === 'mouseleave')
{
object.addEventListener('mouseout', mouseEnter(handler), false);
}
else if (event == 'mousewheel')
{
object.addEventListener('DOMMouseScroll', handler, false);
}
object.addEventListener(event, handler, false);
}
else if (object.attachEvent)
{
object.attachEvent('on' + event, handler);
}
else if (event === 'readystatechange') 		{
object.onreadystatechange = handler;
}
return true;
}
this.fireEvent = false;
var fireEvent_ie = function(object, eventName)
{
var eventObject = document.createEventObject();
return object.fireEvent('on' + eventName, eventObject)
}
var fireEvent_standards = function(object, eventName)
{
var eventObject = document.createEvent("HTMLEvents");
eventObject.initEvent(eventName, true, true);
return !object.dispatchEvent(eventObject);
}
this.removeHandler = function(object, event, handler)
{
if (object.removeEventListener)
{
if (event == 'mousewheel')
{
object.removeEventListener('DOMMouseScroll', handler, false);
}
object.removeEventListener(event, handler, false);
}
else if (object.detachEvent)
{
object.detachEvent('on' + event, handler);
}
}
this.cancelBubbling = function(event)
{
event.cancelBubble = true;
if (event.stopPropagation)
{
event.stopPropagation();
}
}
this.preventDefaultAction = function(event)
{
if (event.preventDefault)
{
event.preventDefault();
}
event.returnValue = false;
}
this.detectEventSupport = function(eventName)
{
var element = document.createElement('div');
var eventName = 'on' + eventName;
var eventSupported = (eventName in element);
if (!eventSupported)
{
element.setAttribute(eventName, 'return;');
if (typeof element[eventName] == 'function')
{
eventSupported = true;
}
}
return eventSupported;
};
var mouseEnter = function(handler)
{
return function(event)
{
var relTarget = event.relatedTarget;
if (this === relTarget || domHelper.isAChildOf(this, relTarget))
{
return;
}
handler.call(this, event);
}
}
var self = this;
init();
}
window.controller = new function()
{
var init = function()
{
try
{
document.execCommand("BackgroundImageCache", false, true);
}
catch(err){};
eventsManager.addHandler(window, "load", onloadHandler);
eventsManager.addHandler(window, "DOMContentLoaded", domLoadedHandler);
};
var domLoadedHandler = function()
{
domLoaded = true;
self.fireEvent('initLogics');
self.fireEvent('initDom');
self.fireEvent('startApplication');
};
var onloadHandler = function()
{
if (!domLoaded)
{
self.fireEvent('initLogics');
self.fireEvent('initDom');
self.fireEvent('startApplication');
}
self.fireEvent('DOMContentReady');
};
this.addListener = function(eventName, listener)
{
var listenerExists = false;
if (!eventsIndex[eventName])
{
eventsIndex[eventName] = new Array();
}
for (var i=0; i<eventsIndex[eventName].length; i++)
{
if (eventsIndex[eventName][i] == listener)
{
listenerExists = true;
}
}
if (!listenerExists)
{
eventsIndex[eventName].push(listener);
}
};
this.fireEvent = function(eventName, argument)
{
if (typeof argument == 'undefined')
{
var argument = false;
}
if (eventsIndex[eventName])
{
for (var i=0; i<eventsIndex[eventName].length; i++)
{
if (typeof eventsIndex[eventName][i] == 'function')
{
eventsIndex[eventName][i](argument);
}
}
}
};
this.removeListener = function(eventName, listener)
{
if (eventsIndex[eventName])
{
for (var i=0; i<eventsIndex[eventName].length; i++)
{
if (eventsIndex[eventName][i] == listener)
{
eventsIndex[eventName].splice(i, 1);
}
}
}
};
var self = this;
var domLoaded = false;
var eventsIndex = {};
init();
};
window.opacityHandler = new function()
{
var detectOpacityType = function()
{
if (typeof(document.body.style.opacity) == 'string')
{
opacityType = 'opacity';
}
else if (document.body.filters && navigator.appVersion.match(/MSIE ([\d.]+);/)[1] >= 5.5 )
{
var version = navigator.appVersion.match(/MSIE ([\d.]+);/)[1];
if (version >= 8 && version < 9)
{
opacityRecursive =  true;
}
opacityType =  'filter';
}
}
this.setOpacity = function(element, opacity)
{
if (element)
{
if (!opacityType)
{
detectOpacityType();
}
if (opacity < 0)
{
opacity = 0;
}
if (opacityType == "filter")
{
if (element.currentStyle)
{
if (element.currentStyle.filter != '' && element.style.filter == '')
{
element.style.filter += element.currentStyle.filter;
}
}
try
{
element.filters.item('DXImageTransform.Microsoft.alpha').opacity = Math.round(opacity*100);
}
catch(error)
{
element.style.filter += "progid:DXImageTransform.Microsoft.Alpha(style=0, opacity="+ Math.round(opacity*100) +", FinishOpacity="+ Math.round(opacity*100) +")";
}
}
else
{
element.style[opacityType] = opacity;
}
}
if (opacityRecursive)
{
for (var i=0; i<element.childNodes.length; i++)
{
if (element.childNodes[i].nodeType == '1')
{
var position = element.childNodes[i].currentStyle['position'];
if (position == 'absolute' || position == 'relative')
{
self.setOpacity(element.childNodes[i], opacity);
}
}
}
}
}
this.getOpacity = function(element)
{
if (!opacityType)
{
detectOpacityType();
}
if (opacityType == "filter")
{
if (element.filters)
{
try
{
var opacity = element.filters.item("DXImageTransform.Microsoft.Alpha").opacity / 100;
}
catch(error)
{
var opacity = 1;
}
}
}
else if (window.getComputedStyle)
{
var opacity = document.defaultView.getComputedStyle(element, null).getPropertyValue(opacityType);
}
return parseFloat(opacity);
}
var self = this;
var opacityType = false;
var opacityRecursive = false;
}
window.mouseTracker = new function()
{
this.init = function()
{
self.captureMouseCoordinates = captureMouseCoordinates_standards;
if (navigator.appName == "Microsoft Internet Explorer")
{
var version = navigator.appVersion.match(/MSIE ([\d.]+);/)[1];
if (version < 9)
{
self.captureMouseCoordinates = captureMouseCoordinates_ie;
}
}
window.eventsManager.addHandler(document, 'mousemove', this.captureMouseCoordinates);
}
var captureMouseCoordinates_standards = function(event)
{
var mouseX = event.pageX;
var mouseY = event.pageY;
if (mouseX < 0)
{
mouseX = 0;
}
if (mouseY < 0)
{
mouseY = 0;
}
self.mouseX = mouseX;
self.mouseY = mouseY;
}
var captureMouseCoordinates_ie = function(event)
{
var mouseX = window.event.clientX + document.documentElement.scrollLeft;
var mouseY = window.event.clientY + document.documentElement.scrollTop;
if (mouseX < 0)
{
mouseX = 0;
}
if (mouseY < 0)
{
mouseY = 0;
}
self.mouseX = mouseX;
self.mouseY = mouseY;
}
this.checkMouseOver = function(domElement)
{
var currentMouseX = this.mouseX;
var currentMouseY = this.mouseY;
var elementCoordinates = this.getElementCoordinates(domElement);
var elementX = elementCoordinates[0];
var elementY = elementCoordinates[1];
var elementWidth = domElement.offsetWidth;
var elementHeight = domElement.offsetHeight;
var check = false;
if ((currentMouseX >= elementX) && (currentMouseX < elementX + elementWidth))
{
if ((currentMouseY >= elementY) && (currentMouseY < elementY + elementHeight))
{
check = true;
}
}
return check;
}
this.getDelta = function(event)
{
var delta = 0;
if (event.wheelDelta)
{
delta = event.wheelDelta/120;
}
else if (event.detail)
{
delta = -event.detail/3;
}
return delta;
}
this.getElementCoordinates = function(domElement)
{
var curleft = curtop = 0;
if (domElement.offsetParent)
{
var curleft = domElement.offsetLeft;
var curtop = domElement.offsetTop;
while (domElement = domElement.offsetParent)
{
if (domElement.tagName != 'body' && domElement.tagName != 'BODY')
{
curleft += domElement.offsetLeft - domElement.scrollLeft;
curtop += domElement.offsetTop - domElement.scrollTop;
}
else
{
curleft += domElement.offsetLeft;
curtop += domElement.offsetTop;
}
}
}
return {left:curleft,top:curtop};
}
var self = this;
this.mouseX = 0;
this.mouseY = 0;
this.captureMouseCoordinates = false;
this.init();
}
window.customMouseTracker = function(documentObject)
{
this.init = function()
{
self.captureMouseCoordinates = captureMouseCoordinates_standards;
if (navigator.appName == "Microsoft Internet Explorer")
{
var version = navigator.appVersion.match(/MSIE ([\d.]+);/)[1];
if (version < 9)
{
self.captureMouseCoordinates = captureMouseCoordinates_ie;
}
}
if (documentObject)
{
this.documentObject = documentObject;
if (documentObject.contentWindow)
{
eventsManager.addHandler(documentObject.contentWindow.document, 'mousemove', this.captureMouseCoordinates);
}
else
{
eventsManager.addHandler(documentObject, 'mousemove', this.captureMouseCoordinates);
}
}
}
var captureMouseCoordinates_standards = function(event)
{
var mouseX = event.pageX;
var mouseY = event.pageY;
if (mouseX < 0)
{
mouseX = 0;
}
if (mouseY < 0)
{
mouseY = 0;
}
self.mouseX = mouseX;
self.mouseY = mouseY;
}
var captureMouseCoordinates_ie = function(event)
{
var mouseX = self.documentObject.contentWindow.event.clientX;
var mouseY = self.documentObject.contentWindow.event.clientY;
if (mouseX < 0)
{
mouseX = 0;
}
if (mouseY < 0)
{
mouseY = 0;
}
self.mouseX = mouseX;
self.mouseY = mouseY;
}
var self = this;
this.mouseX = 0;
this.mouseY = 0;
this.documentObject = false;
this.captureMouseCoordinates = false;
this.init();
}
window.ajaxManager = new function()
{
var self = this;
var queueStatus;
var requestsQueue;
var init = function()
{
queueStatus = 'ready';
requestsQueue = new Array();
};
this.makeRequest = function(parameters)
{
var result = false;
if (typeof parameters == 'object')
{
result = new AjaxRequest(parameters, self);
requestsQueue.push(result);
nextRequestCheck();
}
return result;
};
var nextRequestCheck = function()
{
if (queueStatus == 'ready')
{
if (requestsQueue.length > 0)
{
queueStatus = 'pending';
requestsQueue[0].makeRequest();
controller.fireEvent('ajaxRequestStarted');
}
}
};
this.requestEnded = function(request)
{
for (var i = 0; i < requestsQueue.length; i++)
{
if (requestsQueue[i] == request)
{
requestsQueue.splice(i, 1);
break;
}
}
queueStatus = 'ready';
controller.fireEvent('ajaxRequestEnded');
nextRequestCheck();
};
init();
};
window.AjaxRequest = function(parameters, ajaxManager)
{
var self = this;
var status = null;
var failureDelay = 15000;
var failureCheckTimeOut = null;
var XMLHttpResource = null;
var requestURL = false;
var requestXML = false;
var requestType = false;
var contentType = false;
var successCallBack = false;
var failCallBack = false;
var progressCallBack = false;
var postParameters = false;
var init = function()
{
if (typeof parameters.requestXML != 'undefined')
{
requestXML = parameters.requestXML;
}
else
{
requestXML = false;
}
if (typeof parameters.requestURL != 'undefined')
{
requestURL = parameters.requestURL;
}
else
{
requestURL = false;
}
if (typeof parameters.requestType != 'undefined')
{
requestType = parameters.requestType.toUpperCase();
}
else
{
requestType = 'POST';
}
if (typeof parameters.contentType != 'undefined')
{
contentType = parameters.contentType;
}
else
{
contentType = 'application/x-www-form-urlencoded';
}
if (typeof parameters.postParameters == 'object')
{
postParameters = parameters.postParameters;
}
else
{
postParameters = {};
}
if (typeof parameters.successCallBack == 'function')
{
successCallBack = parameters.successCallBack;
}
else
{
successCallBack = false;
}
if (typeof parameters.failureDelay != 'undefined')
{
failureDelay = parameters.failureDelay;
}
if (typeof parameters.failCallBack == 'function')
{
failCallBack = parameters.failCallBack;
}
else
{
failCallBack = false;
}
if (typeof parameters.progressCallBack == 'function')
{
progressCallBack = parameters.progressCallBack;
}
else
{
progressCallBack = false;
}
XMLHttpResource = getXMLHttpRequestObject();
};
this.makeRequest = function()
{
if (requestType == 'POST')
{
var converter = new AjaxRequestDataConverter(postParameters, sendRequest, contentType);
converter.preparePostData();
}
else
{
sendRequest(null, null);
}
};
var sendRequest = function(headers, postBody)
{
if (progressCallBack)
{
window.eventsManager.addHandler(XMLHttpResource.upload, 'progress', progressCallBack);
}
if (failureDelay !== false)
{
failureCheckTimeOut = window.setTimeout(requestTimeOutHandler, failureDelay);
}
if (requestType == 'POST')
{
XMLHttpResource.open("POST", requestURL, true);
for (var header in headers)
{
XMLHttpResource.setRequestHeader(header, headers[header]);
}
XMLHttpResource.onreadystatechange = catchRequestAnswer;
if (typeof postBody == 'string')
{
if (typeof XMLHttpResource.sendAsBinary != 'undefined')
{
XMLHttpResource.sendAsBinary(postBody);
}
else
{
XMLHttpResource.send(postBody);
}
}
else if (typeof postBody == 'object')
{
XMLHttpResource.send(postBody);
}
}
else
{
XMLHttpResource.open("GET", requestURL, true);
XMLHttpResource.onreadystatechange = catchRequestAnswer;
XMLHttpResource.send();
}
};
var catchRequestAnswer = function()
{
if (status == null)
{
if (XMLHttpResource.readyState == 4)
{
if (XMLHttpResource.status == 200)
{
status = 'success';
}
else
{
status = 'failure';
}
processRequestResult();
}
}
};
var requestTimeOutHandler = function()
{
if (status == null)
{
status = 'timeout';
processRequestResult();
}
};
var processRequestResult = function()
{
window.clearTimeout(failureCheckTimeOut);
if (status == 'success')
{
if (successCallBack)
{
var callBackArgument = false;
if (requestXML)
{
callBackArgument = XMLHttpResource.responseXML;
}
else
{
callBackArgument = XMLHttpResource.responseText;
}
successCallBack(callBackArgument);
}
}
else
{
if (failCallBack)
{
failCallBack();
}
}
ajaxManager.requestEnded(self);
};
var getXMLHttpRequestObject = function()
{
var result = false;
if (window.XMLHttpRequest)
{
result = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
try
{
result = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
result = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E)
{
result = false;
}
}
}
return result;
};
init();
};
window.AjaxRequestDataConverter = function(postParameters, callBack, contentType)
{
this.preparePostData = function()
{
if (contentType == 'multipart/form-data' && typeof window.FormData == 'undefined')
{
for (var name in postParameters)
{
var value = postParameters[name];
if (typeof value == 'object' && value.name && value.size && value.type)
{
fileContents[name] = false;
var reader = new FileReader();
reader.onload = function(fieldName)
{
return function(event)
{
getFileContents(event, fieldName)
}
}(name);
reader.readAsBinaryString(value);
}
}
checkFilesPreload();
}
else
{
generateContentBody();
}
};
var getFileContents = function(event, name)
{
fileContents[name] = event.target.result;
checkFilesPreload();
};
var checkFilesPreload = function()
{
var loaded = true;
for (var i in fileContents)
{
if (fileContents[i] === false)
{
loaded = false;
break;
}
}
if (loaded)
{
generateContentBody();
}
};
var generateContentBody = function()
{
var contentBody = '';
var headers = {};
if (contentType == 'application/x-www-form-urlencoded')
{
for (var name in postParameters)
{
contentBody = contentBody + name + '=' + postParameters[name] + '&';
}
contentBody = encodeURI(contentBody);
headers["Content-type"] = 'application/x-www-form-urlencoded';
}
else if (contentType == 'multipart/form-data')
{
if (typeof window.FormData != 'undefined')
{
contentBody = new FormData();
for (var name in postParameters)
{
contentBody.append(name, postParameters[name]);
}
}
else
{
var boundary = '---------------------------';
boundary += Math.floor(Math.random() * 32768);
boundary += Math.floor(Math.random() * 32768);
boundary += Math.floor(Math.random() * 32768);
headers["Content-type"] = 'multipart/form-data; boundary=' + boundary;
for (var name in postParameters)
{
var value = postParameters[name];
if (typeof value == 'string')
{
contentBody += '--' + boundary + '\r\n' + 'Content-Disposition: form-data; name="' + name + '"';
contentBody += '\r\n\r\n';
contentBody += value;
contentBody += '\r\n'
}
else if (typeof value == 'object' && value.name && value.size && value.type)
{
contentBody += '--' + boundary + '\r\n' + 'Content-Disposition: form-data; name="' + name + '"; filename="' + value.name + '"';
contentBody += '\r\n' + 'Content-Type: "' + value.type + '"';
contentBody += '\r\n\r\n';
contentBody += fileContents[name];
contentBody += '\r\n'
}
}
contentBody += '--' + boundary + '--';
}
}
callBack(headers, contentBody);
};
var self = this;
var fileContents = {};
};
window.effectsManager = new function()
{
this.startEffect = function(effectName, element, parameters, callback)
{
var effectPlugin = false;
if (effectPlugin = this.getEffectPlugin(effectName, element))
{
this.setEffectParameters(effectPlugin, parameters);
var effectInfo = null;
if (effectInfo = this.registerEffectInfo(effectName, element))
{
effectInfo.clearTimeOuts(effectName);
this.assignTimeouts(effectPlugin, effectInfo, callback);
}
}
}
this.queueEffect = function(effectName, element, parameters, callback)
{
var effectPlugin = false;
if (effectPlugin = this.getEffectPlugin(effectName, element))
{
this.setEffectParameters(effectPlugin, parameters);
var effectInfo = null;
if (effectInfo = this.registerEffectInfo(effectName, element))
{
this.assignTimeouts(effectPlugin, effectInfo, callback);
}
}
}
this.assignTimeouts = function(effectPlugin, effectInfo, callback)
{
var timeOutDelay = this.timeOutDelay;
var offsetTimeout = effectInfo.getOffsetTimeout(effectPlugin.effectName);
var timeoutsArray = effectInfo.getTimeoutList(effectPlugin.effectName);
var olderFrames = timeoutsArray.length;
var framesCount = effectPlugin.calculateFramesCount();
var currentDelay = offsetTimeout;
var time = null;
for (var frame = 1; frame <= framesCount; frame++)
{
time = frame;
var currentDelay = offsetTimeout + time * timeOutDelay;
timeoutsArray[currentDelay] = setTimeout(
function(effectPlugin, time)
{
return function(){effectPlugin.renderFrame(time);};
}(effectPlugin, time), currentDelay);
}
if (time < framesCount)
{
time = framesCount;
frame = framesCount;
var currentDelay = offsetTimeout + time * timeOutDelay;
timeoutsArray[currentDelay] = setTimeout(
function(effectPlugin, time)
{
return function(){effectPlugin.renderFrame(time);};
}(effectPlugin, time), currentDelay);
}
if (callback)
{
var currentDelay  = offsetTimeout + (framesCount +1) * timeOutDelay;
timeoutsArray[framesCount + 1  + olderFrames] = setTimeout(callback, currentDelay);
}
effectInfo.setTimeoutList(timeoutsArray, effectPlugin.effectName);
effectInfo.calculateEndDate(currentDelay, effectPlugin.effectName);
}
this.setEffectParameters = function(effectPlugin, parameters)
{
effectPlugin.parameters = new Array();
if (effectPlugin.defaults)
{
effectPlugin.parameters = effectPlugin.defaults;
}
for (var index in parameters)
{
effectPlugin.parameters[index] = parameters[index];
}
}
this.registerEffectInfo = function(effectName, element)
{
if (typeof element.artWebEffects == 'undefined')
{
element.artWebEffects = new effectsInfo();
}
element.artWebEffects.register(effectName);
return element.artWebEffects;
}
this.getEffectPlugin = function(effectName, element)
{
var newEffect = false;
try
{
newEffect = eval('new artWebEffect_'+effectName);
newEffect.effectName = effectName;
newEffect.element = element;
}
catch(error)
{
alert('Effect "'+ effectName +'" load error');
}
return newEffect;
}
this.fps = 50;
this.timeOutDelay = 1000 / this.fps;
}
function effectsInfo()
{
this.register = function(effectName)
{
if (!this.effects[effectName])
{
this.effects[effectName] = new Array();
}
if (!this.effects[effectName].timeoutList)
{
this.effects[effectName].timeoutList = new Array();
}
if (!this.effects[effectName].endDate)
{
this.calculateEndDate(0, effectName);
}
}
this.calculateEndDate = function(offsetValue, effectName)
{
var offsetDate = new Date();
offsetDate.setTime(parseInt(offsetDate.getTime() + offsetValue));
this.effects[effectName].endDate = offsetDate;
}
this.getOffsetTimeout = function(effectName)
{
var resultOffset = 0;
var nowDate = new Date();
var endDate = this.effects[effectName].endDate;
if (nowDate < endDate)
{
resultOffset = endDate.getTime() - nowDate.getTime();
}
return resultOffset;
}
this.getTimeoutList = function(effectName)
{
try
{
var timeoutList = this.effects[effectName].timeoutList;
}
catch(error)
{
var timeoutList = false;
}
return timeoutList;
}
this.setTimeoutList = function(timeoutList, effectName)
{
this.effects[effectName].timeoutList = timeoutList;
}
this.clearTimeOuts = function(effectName)
{
var timeOutsList = this.getTimeoutList(effectName);
for (var index in timeOutsList)
{
clearTimeout(timeOutsList[index]);
}
timeOutsList = new Array();
this.setTimeoutList(timeOutsList, effectName);
this.calculateEndDate(0, effectName);
}
this.effects = new Array();
}
function artWebEffect_opacity()
{
this.renderFrame = function(frame)
{
var direction = 1;
var startOpacity = this.startOpacity;
var endOpacity = this.parameters.end;
var opacityStep = this.parameters.step;
if (startOpacity > endOpacity)
{
direction = -1;
}
var currentOpacity = (startOpacity + opacityStep * frame * direction);
opacityHandler.setOpacity(this.element, currentOpacity);
}
this.calculateFramesCount = function()
{
var direction = 1;
if (this.parameters.start)
{
var startOpacity = this.parameters.start;
}
else
{
var startOpacity = opacityHandler.getOpacity(this.element);
}
this.startOpacity = startOpacity;
var endOpacity = this.parameters.end;
var opacityStep = this.parameters.step;
var framesCount = 0;
if (startOpacity > endOpacity)
{
direction = -1;
}
var opacityChange = (endOpacity - startOpacity)*direction;
framesCount = (opacityChange / opacityStep);
return framesCount;
}
var instance = this;
this.opacityType = false;
this.defaults = {end: 0, step: 0.01};
}
;
(function(){var _=function(selector,root,noCache){if(_.c[selector]&&!noCache&&!root){return _.c[selector]}noCache=noCache||!!root;root=root||_.doc;var sets=[];if(/^[\w[:#.][\w\]*^|=!]*$/.test(selector)){var idx=0;switch(selector.charAt(0)){case"#":idx=selector.slice(1);sets=_.doc.getElementById(idx);if(_.browser.ie&&sets.id!==idx){sets=_.doc.all[idx]}sets=sets?[sets]:[];break;case".":var klass=selector.slice(1);if(_.k){sets=(idx=(sets=root.getElementsByClassName(klass)).length)?sets:[]}else{klass=" "+klass+" ";var nodes=root.getElementsByTagName("*"),i=0,node;while(node=nodes[i++]){if((" "+node.className+" ").indexOf(klass)!=-1){sets[idx++]=node}}sets=idx?sets:[]}break;case":":var node,nodes=root.getElementsByTagName("*"),i=0,ind=selector.replace(/[^(]*\(([^)]*)\)/,"$1"),mod=selector.replace(/\(.*/,"");while(node=nodes[i++]){if(_.mods[mod]&&!_.mods[mod](node,ind)){sets[idx++]=node}}sets=idx?sets:[];break;case"[":var nodes=root.getElementsByTagName("*"),node,i=0,attrs=/\[([^!~^*|$ [:=]+)([$^*|]?=)?([^ :\]]+)?\]/.exec(selector),attr=attrs[1],eql=attrs[2]||"",value=attrs[3];while(node=nodes[i++]){if(_.attr[eql]&&(_.attr[eql](node,attr,value)||(attr==="class"&&_.attr[eql](node,"className",value)))){sets[idx++]=node}}sets=idx?sets:[];break;default:sets=(idx=(sets=root.getElementsByTagName(selector)).length)?sets:[];break}}else{if(_.q&&selector.indexOf("!=")==-1){sets=root.querySelectorAll(selector.replace(/=([^\]]+)/,'="$1"'))}else{var groups=selector.split(/ *, */),gl=groups.length-1,concat=!!gl,group,singles,singles_length,single,i,ancestor,nodes,tag,id,klass,attr,eql,mod,ind,newNodes,idx,J,child,last,childs,item,h;while(group=groups[gl--]){if(!(nodes=_.c[group])||noCache){singles_length=(singles=group.replace(/(\([^)]*)\+/,"$1%").replace(/(\[[^\]]+)~/,"$1&").replace(/(~|>|\+)/," $1 ").split(/ +/)).length;i=0;ancestor=" ";nodes=[root];while(single=singles[i++]){if(single!==" "&&single!==">"&&single!=="~"&&single!=="+"&&nodes){single=single.match(/([^[:.#]+)?(?:#([^[:.#]+))?(?:\.([^[:.]+))?(?:\[([^!&^*|$[:=]+)([!$^*|&]?=)?([^:\]]+)?\])?(?:\:([^(]+)(?:\(([^)]+)\))?)?/);tag=single[1]||"*";id=single[2];klass=single[3]?" "+single[3]+" ":"";attr=single[4];eql=single[5]||"";mod=single[7];ind=mod==="nth-child"||mod==="nth-last-child"?/(?:(-?\d*)n)?(?:(%|-)(\d*))?/.exec(single[8]==="even"&&"2n"||single[8]==="odd"&&"2n%1"||!/\D/.test(single[8])&&"0n%"+single[8]||single[8]):single[8];newNodes=[];idx=J=0;last=i==singles_length;while(child=nodes[J++]){switch(ancestor){case" ":childs=child.getElementsByTagName(tag);h=0;while(item=childs[h++]){if((!id||item.id===id)&&(!klass||(" "+item.className+" ").indexOf(klass)!=-1)&&(!attr||(_.attr[eql]&&(_.attr[eql](item,attr,single[6])||(attr==="class"&&_.attr[eql](item,"className",single[6])))))&&!item.yeasss&&!(_.mods[mod]?_.mods[mod](item,ind):mod)){if(last){item.yeasss=1}newNodes[idx++]=item}}break;case"~":tag=tag.toLowerCase();while((child=child.nextSibling)&&!child.yeasss){if(child.nodeType==1&&(tag==="*"||child.nodeName.toLowerCase()===tag)&&(!id||child.id===id)&&(!klass||(" "+child.className+" ").indexOf(klass)!=-1)&&(!attr||(_.attr[eql]&&(_.attr[eql](item,attr,single[6])||(attr==="class"&&_.attr[eql](item,"className",single[6])))))&&!child.yeasss&&!(_.mods[mod]?_.mods[mod](child,ind):mod)){if(last){child.yeasss=1}newNodes[idx++]=child}}break;case"+":while((child=child.nextSibling)&&child.nodeType!=1){}if(child&&(child.nodeName.toLowerCase()===tag.toLowerCase()||tag==="*")&&(!id||child.id===id)&&(!klass||(" "+item.className+" ").indexOf(klass)!=-1)&&(!attr||(_.attr[eql]&&(_.attr[eql](item,attr,single[6])||(attr==="class"&&_.attr[eql](item,"className",single[6])))))&&!child.yeasss&&!(_.mods[mod]?_.mods[mod](child,ind):mod)){if(last){child.yeasss=1}newNodes[idx++]=child}break;case">":childs=child.getElementsByTagName(tag);i=0;while(item=childs[i++]){if(item.parentNode===child&&(!id||item.id===id)&&(!klass||(" "+item.className+" ").indexOf(klass)!=-1)&&(!attr||(_.attr[eql]&&(_.attr[eql](item,attr,single[6])||(attr==="class"&&_.attr[eql](item,"className",single[6])))))&&!item.yeasss&&!(_.mods[mod]?_.mods[mod](item,ind):mod)){if(last){item.yeasss=1}newNodes[idx++]=item}}break}}nodes=newNodes}else{ancestor=single}}}if(concat){if(!nodes.concat){newNodes=[];h=0;while(item=nodes[h]){newNodes[h++]=item}nodes=newNodes}sets=nodes.concat(sets.length==1?sets[0]:sets)}else{sets=nodes}}idx=sets.length;while(idx--){sets[idx].yeasss=sets[idx].nodeIndex=sets[idx].nodeIndexLast=null}}}return noCache?sets:_.c[selector]=sets};_.c=[];_.doc=document;_.win=window;_.attr={"":function(child,attr){return !!child.getAttribute(attr)},"=":function(child,attr,value){return(attr=child.getAttribute(attr))&&attr===value},"&=":function(child,attr,value){return(attr=child.getAttribute(attr))&&(new RegExp("(^| +)"+value+"($| +)").test(attr))},"^=":function(child,attr,value){return(attr=child.getAttribute(attr)+"")&&!attr.indexOf(value)},"$=":function(child,attr,value){return(attr=child.getAttribute(attr)+"")&&attr.indexOf(value)==attr.length-value.length},"*=":function(child,attr,value){return(attr=child.getAttribute(attr)+"")&&attr.indexOf(value)!=-1},"|=":function(child,attr,value){return(attr=child.getAttribute(attr)+"")&&(attr===value||!!attr.indexOf(value+"-"))},"!=":function(child,attr,value){return !(attr=child.getAttribute(attr))||!(new RegExp("(^| +)"+value+"($| +)").test(attr))}};_.mods={"first-child":function(child){return child.parentNode.getElementsByTagName("*")[0]!==child},"last-child":function(child){var brother=child;while((brother=brother.nextSibling)&&brother.nodeType!=1){}return !!brother},root:function(child){return child.nodeName.toLowerCase()!=="html"},"nth-child":function(child,ind){var i=child.nodeIndex||0,a=ind[3]=ind[3]?(ind[2]==="%"?-1:1)*ind[3]:0,b=ind[1];if(i){return !((i+a)%b)}else{var brother=child.parentNode.firstChild;i++;do{if(brother.nodeType==1&&(brother.nodeIndex=++i)&&child===brother&&((i+a)%b)){return 0}}while(brother=brother.nextSibling);return 1}},"nth-last-child":function(child,ind){var i=child.nodeIndexLast||0,a=ind[3]?(ind[2]==="%"?-1:1)*ind[3]:0,b=ind[1];if(i){return !((i+a)%b)}else{var brother=child.parentNode.lastChild;i++;do{if(brother.nodeType==1&&(brother.nodeLastIndex=i++)&&child===brother&&((i+a)%b)){return 0}}while(brother=brother.previousSibling);return 1}},empty:function(child){return !!child.firstChild},parent:function(child){return !child.firstChild},"only-child":function(child){return child.parentNode.getElementsByTagName("*").length!=1},checked:function(child){return !child.checked},lang:function(child,ind){return child.lang!==ind&&_.doc.documentElement.lang!==ind},enabled:function(child){return child.disabled||child.type==="hidden"},disabled:function(child){return !child.disabled},selected:function(elem){child.parentNode.selectedIndex;return !child.selected}};_.isReady=0;_.ready=function(fn){if(typeof fn==="function"){if(!_.isReady){_.ready.list[_.ready.list.length]=fn}else{fn()}}else{if(!_.isReady){_.isReady=1;var idx=_.ready.list.length;while(idx--){_.ready.list[idx]()}}}};_.ready.list=[];_.bind=function(element,event,fn){if(typeof element==="string"){var elements=_(element),idx=0;while(element=elements[idx++]){_.bind(element,event,fn)}}else{event="on"+event;var handler=element[event];if(handler){element[event]=function(){handler();fn()}}else{element[event]=fn}}};_.ua=navigator.userAgent.toLowerCase();_.k=!!_.doc.getElementsByClassName;_.browser={safari:_.ua.indexOf("webkit")!=-1,opera:_.ua.indexOf("opera")!=-1,ie:_.ua.indexOf("msie")!=-1&&_.ua.indexOf("opera")==-1,mozilla:_.ua.indexOf("mozilla")!=-1&&(_.ua.indexOf("compatible")+_.ua.indexOf("webkit")==-2)};_.q=!!_.doc.querySelectorAll&&!_.browser.ie&&!_.browser.opera;if(_.doc.addEventListener&&!_.browser.opera){_.doc.addEventListener("DOMContentLoaded",_.ready,false)}if(_.browser.ie&&_.win==top){(function(){if(_.isReady){return}try{_.doc.documentElement.doScroll("left")}catch(e){setTimeout(arguments.callee);return}_.ready()})()}if(_.browser.opera){_.doc.addEventListener("DOMContentLoaded",function(){if(_.isReady){return}var i=0,ss;while(ss=_.doc.styleSheets[i++]){if(ss.disabled){setTimeout(arguments.callee);return}}_.ready()},false)}if(_.browser.safari){(function(){if(_.isReady){return}if((_.doc.readyState!=="loaded"&&_.doc.readyState!=="complete")||_.doc.styleSheets.length!==_("style,link[rel=stylesheet]").length){setTimeout(arguments.callee);return}_.ready()})()}_.bind(_.win,"load",_.ready);_.modules={yass:[]};_.load=function(aliases,text){var loader=function(alias,text,tries,aliases){if(!(tries%100)&&_.modules[alias].status<2){_("head")[0].removeChild(_("script[title="+alias+"]")[0]);_.modules[alias].status=0;if(!(tries-=1000)){_.modules[alias].status=-1;return}}switch(_.modules[alias].status){case 2:try{eval(text)}catch(a){}case 3:case -2:break;default:_.modules[alias].status=1;var script=_.doc.createElement("script");script.src=alias.indexOf(".js")+alias.indexOf("/")!=-2?alias:_.base+"yass."+alias+".js";script.type="text/javascript";script.text=text||"";script.title=alias;script.onreadystatechange=function(){if(this.readyState==="complete"){_.postloader(this)}};script.onload=function(e){_.postloader(e.srcElement||e.target)};_("head")[0].appendChild(script);case 1:setTimeout(function(){loader(alias,text,--tries,aliases)},100);break}},idx=0,alias,a;aliases=aliases.split("#");_.base=_.base||_("script[src*=yass.]")[0].src.replace(/yass[^\/]*\.js$/,"");while(alias=aliases[idx++]){if(!_.modules[alias]){_.modules[alias]={};_.modules.yass[_.modules.yass.length]=alias}_.modules[alias].deps=_.modules[alias].deps||{yass:[]};_.modules[alias].notloaded=_.modules[alias].notloaded||0;if((a=aliases[idx-2])&&a!==alias&&!_.modules[alias].deps[a]){_.modules[alias].deps[a]=1;_.modules[alias].deps.yass[_.modules[alias].deps.yass.length]=a;_.modules[alias].notloaded++}if(!_.modules[alias].status&&!(_.modules[alias].status-=2)){_.modules[alias].status=0;loader(alias,text,11999,aliases)}}};_.postloader=function(e){if(_.browser.opera){try{eval(e.innerHTML)}catch(a){}}var module=_.modules[e.title],aliases=module.deps.yass,idx=aliases.length-1;module.status=3;while(aliases[idx]&&_.modules[aliases[idx]].status==2&&idx--){}if(idx>-1){return}module.status=2;if(module.init){module.init()}var modules=_.modules.yass,recursive=function(title){var dep,alias,idx=0;while(alias=modules[idx++]){dep=_.modules[alias];if(dep.deps[title]&&!(--dep.notloaded)&&dep.status==3){dep.status=2;if(dep.init){dep.init()}recursive(alias)}}};recursive(e.title)};_.win._=_.win._||(_.win.yass=_)})();_.ready(function(){var c=_("[class^=yass-module-]"),d,b=c.length,a=0;while(a<b){d=c[a++];_.load(d.className.slice(d.className.indexOf("yass-module-")+12),d.title);d.title=null}});
;
window.debugLogics = new function()
{
this.addRecord = function(text)
{
var record = {};
record['text'] = text;
records.push(record);
window.controller.fireEvent('debugInfoUpdate');
}
this.getRecords = function()
{
return records;
}
this.getLastRecord = function()
{
return records[records.length-1];
}
var self = this;
var records = new Array();
}
window.debug = function(value)
{
var text = '';
if (typeof value == 'object')
{
for (var i in value)
{
text += i+': '+value[i]+'\n';
}
}
else if (typeof value == 'function')
{
text = 'function: '+value[i];
}
else
{
text = value;
}
window.debugLogics.addRecord(text);
}
window.basketStatusLogics = new function()
{
var initComponents = function()
{
var basketStatusElement = false;
if (basketStatusElement = _('.basketstatus_block')[0])
{
new BasketStatusComponent(basketStatusElement);
}
}
window.controller.addListener('initDom', initComponents);
}
window.calendarSelectorLogics = new function()
{
this.init = function()
{
var inputElements = _('.calendarSelector');
for (var i = 0; i < inputElements.length; i++)
{
self.calendarObjects.push(new CalendarSelectorComponent(inputElements[i]));
}
window.eventsManager.addHandler(document, 'click', self.hideCalendars);
}
this.hideCalendars = function()
{
for (var i = 0; i < self.calendarObjects.length; i++)
{
var element = self.calendarObjects[i];
if (element.state != 'closed')
{
element.hideCalendarElement();
}
}
}
var self = this;
this.calendarObjects = new Array();
this.inputElements = new Array();
window.eventsManager.addHandler(window, 'load', this.init);
}
window.categoriesLogics = new function()
{
var initLogics = function()
{
if (window.categoriesInfo)
{
for (var i=0; i<window.categoriesInfo.length; i++)
{
categoriesList.push(window.categoriesInfo[i]);
categoriesIndex[window.categoriesInfo[i].id] = window.categoriesInfo[i];
}
}
}
var initComponents = function()
{
var elements = _('.categories_menu_item');
for (var i=0; i<elements.length; i++)
{
new CategoryMenuComponent(elements[i]);
}
}
this.getCategoryInfo = function(categoryId)
{
var result = false;
if (typeof categoriesIndex[categoryId] != 'undefined')
{
result = categoriesIndex[categoryId];
}
return result;
}
this.getSubCategoriesInfo = function(categoryId)
{
var result = false;
if (typeof childrenListsIndex[categoryId] == 'undefined')
{
childrenListsIndex[categoryId] = new Array();
for (var i=0; i<categoriesList.length; i++)
{
if (categoriesList[i].parentId == categoryId)
{
childrenListsIndex[categoryId].push(categoriesList[i]);
}
}
categoriesIndex[categoryId].title = window.translations.piletilevi['all'];
childrenListsIndex[categoryId].push(categoriesIndex[categoryId]);
}
return childrenListsIndex[categoryId];
}
var self = this;
var categoriesList = new Array();
var categoriesIndex = {};
var childrenListsIndex = {};
window.controller.addListener('initLogics', initLogics);
window.controller.addListener('initDom', initComponents);
}
window.dropDownManager = new function()
{
this.getDropDown = function(element)
{
var dropDown = checkDropDown(element);
if (!dropDown)
{
dropDown = manufactureDropDown(element);
}
return dropDown;
}
this.updateDropDown = function(element)
{
var dropDown = checkDropDown(element);
if (dropDown)
{
dropDown.update();
}
}
this.hideLists = function()
{
for (var i = 0; i < dropDownObjectsList.length; i++)
{
dropDownObjectsList[i].hideList();
}
}
this.createDropDown = function(parameters)
{
var dropDown = new DropDownComponent(false, parameters);
dropDownObjectsList.push(dropDown);
return dropDown;
}
var manufactureDropDown = function(element, parameters)
{
var dropDown = new DropDownComponent(element, parameters);
dropDownObjectsList.push(dropDown);
return dropDown;
}
var init = function()
{
window.eventsManager.addHandler(window, 'click', clickHandler);
var dropDownElements = _('.dropDownComponent');
for (var i = 0; i < dropDownElements.length; i++)
{
if (!checkDropDown(dropDownElements[i]))
{
var dropDownObject = manufactureDropDown(dropDownElements[i]);
var parent = dropDownElements[i].parentNode;
parent.insertBefore(dropDownObject.componentElement, dropDownElements[i]);
}
}
}
var checkDropDown = function(element)
{
var result = false;
for (var i = 0; i < dropDownObjectsList.length; i++)
{
if (dropDownObjectsList[i].selectorElement == element)
{
result = dropDownObjectsList[i];
break;
}
}
return result;
}
var clickHandler = function()
{
for (var i=0; i<dropDownObjectsList.length; i++)
{
dropDownObjectsList[i].hideList();
}
}
var test = 0;
var self = this;
var dropDownObjectsList = new Array();
window.controller.addListener('initDom', init);
};
window.eventsLogics = new function()
{
var initComponents = function()
{
var elements = _('.eventslist_item');
for (var i=0; i<elements.length; i++)
{
new EventsListItemComponent(elements[i]);
}
var elements = _('.concert_tablerow');
for (var i=0; i<elements.length; i++)
{
new ConcertTableRowItemComponent(elements[i]);
}
var elements = _('.show_details_block');
for (var i=0; i<elements.length; i++)
{
new ShowDetailsComponent(elements[i]);
}
var elements = _('.concert_details_block');
for (var i=0; i<elements.length; i++)
{
new ConcertDetailsComponent(elements[i]);
}
var elements = _('.scrollgallery_block');
for (var i=0; i<elements.length; i++)
{
new ScrollGalleryComponent(elements[i]);
}
};
window.controller.addListener('initDom', initComponents);
};
window.fastSearchFormLogics = new function()
{
var initComponents = function()
{
var element = document.getElementById('fastsearch_block');
if (element)
{
new FastSearchFormComponent(element);
}
}
window.controller.addListener('initDom', initComponents);
}
window.fullNewsLogics = new function()
{
var initComponents = function()
{
var elements = _('.newsitem');
for (var i=0; i<elements.length; i++)
{
new NewsListItemComponent(elements[i]);
}
var elements = _('.news_details_block');
for (var i=0; i<elements.length; i++)
{
new NewsDetailsComponent(elements[i]);
}
}
window.controller.addListener('initDom', initComponents);
}
window.placesListItemLogics = new function()
{
var initComponents = function()
{
var elements = _('.place_listitem');
for (var i=0; i<elements.length; i++)
{
new PlacesListItemComponent(elements[i]);
}
}
window.controller.addListener('initDom', initComponents);
}
window.promotersListItemLogics = new function()
{
var initComponents = function()
{
var elements = _('.promoter_listitem');
for (var i=0; i<elements.length; i++)
{
new PromotersListItemComponent(elements[i]);
}
}
window.controller.addListener('initDom', initComponents);
}
window.searchResultsItemLogics = new function()
{
var initComponents = function()
{
var elements = _('.searchresults_item');
for (var i=0; i<elements.length; i++)
{
new SearchResultsItemComponent(elements[i]);
}
}
window.controller.addListener('initDom', initComponents);
}
window.shortNewsLogics = new function()
{
var initComponents = function()
{
var elements = _('.shortnews_item');
for (var i=0; i<elements.length; i++)
{
new ShortNewsComponent(elements[i]);
}
}
window.controller.addListener('initDom', initComponents);
}
window.specialOfferLogics = new function()
{
var initComponents = function()
{
var elements = _('.lastminute_item');
for (var i=0; i<elements.length; i++)
{
new SpecialOfferComponent(elements[i]);
}
}
window.controller.addListener('initDom', initComponents);
}
window.fullMapLogics = new function()
{
var initComponents = function()
{
var elements = _('.full_map_component');
for (var i=0; i<elements.length; i++)
{
new FullMapComponent(elements[i]);
}
};
window.controller.addListener('initDom', initComponents);
};
window.odnoklassnikiLogics = new function()
{
var initComponents = function()
{
var elements = _('.social_tags_odnoklassniki');
if (elements)
{
if (typeof ODKL != 'undefined')
{
ODKL.init();
}
}
}
window.controller.addListener('startApplication', initComponents);
}
window.debugComponent = new function()
{
var debugInfoUpdate = function()
{
refreshContents();
}
var refreshContents = function()
{
if (!componentElement)
{
prepareDom();
}
componentElement.style.display = 'block';
var newRecord = window.debugLogics.getLastRecord();
var recordRow = document.createElement('pre');
recordRow.className = 'debug_block_row';
recordRow.innerHTML = newRecord.text;
if (componentElement.firstChild)
{
componentElement.insertBefore(recordRow, componentElement.firstChild);
}
else
{
componentElement.appendChild(recordRow);
}
}
var prepareDom = function()
{
componentElement = _('.debug_block')[0];
if (!componentElement);
{
componentElement = document.createElement('div');
componentElement.className = 'debug_block';
document.body.appendChild(componentElement);
}
eventsManager.addHandler(componentElement, 'click', clickHandler);
}
var clickHandler = function()
{
componentElement.style.display = 'none';
}
var self = this;
var componentElement = false;
window.controller.addListener('debugInfoUpdate', debugInfoUpdate);
}
window.browserAlertComponent = new function()
{
this.init = function()
{
window.eventsManager.addHandler(window, 'load', this.initHandler);
}
this.initHandler = function()
{
self.createDomElements();
if (!self.cookieExists() && self.browserDetected())
{
if (self.aligning)
{
window.eventsManager.addHandler(window, 'scroll', self.alignComponent);
}
else
{
self.componentElement.style.position = 'fixed';
}
self.display();
}
}
this.browserDetected = function()
{
var result = false;
if (navigator.appVersion.match(/MSIE ([\d.]+);/))
{
var version = navigator.appVersion.match(/MSIE ([\d.]+);/)[1];
if (version < 7)
{
result = true;
}
if (version < 7)
{
self.aligning = true;
}
}
return result;
}
this.cookieExists = function()
{
var result = false;
var cookiesParts = document.cookie.split(';');
for (var i=0; i<cookiesParts.length; i++)
{
var strings = cookiesParts[i].split('=');
while (strings[0].charAt(0)==' ') strings[0] = strings[0].substring(1,strings[0].length);
if (strings[0] == 'browseralert')
{
result = true;
}
}
return result;
}
this.createDomElements = function()
{
if (this.componentElement = document.getElementById('browseralert_block'))
{
window.eventsManager.addHandler(this.componentElement, 'mouseenter', this.mouseOverHandler);
window.eventsManager.addHandler(this.componentElement, 'mouseleave', this.mouseOutHandler);
if (this.closeButton = document.getElementById('browseralert_block_button_close'))
{
window.eventsManager.addHandler(this.closeButton, 'click', this.closeButtonHandler);
}
}
}
this.mouseOverHandler = function(event)
{
self.componentElement.className = 'browseralert_block browseralert_block_hovered';
}
this.mouseOutHandler = function(event)
{
self.componentElement.className = 'browseralert_block';
}
this.closeButtonHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
self.setCookie();
self.hide();
}
this.buttonLeaveHandler = function()
{
self.buttonElement.blur();
}
this.inputHandler = function()
{
}
this.display = function()
{
self.displayed = true;
self.componentElement.style.display = 'block';
}
this.setCookie = function()
{
var days = 1;
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = date.toGMTString();
document.cookie = 'browseralert=1; expires='+date.toGMTString()+'; path=/';
}
this.hide = function()
{
self.displayed = false;
self.componentElement.style.display = 'none';
}
this.alignComponent = function()
{
if (self.displayed)
{
if (window.pageYOffset)
{
var viewPortLeft = window.pageXOffset;
var viewPortTop = window.pageYOffset;
}
else
{
var viewPortLeft = document.documentElement.scrollLeft;
var viewPortTop = document.documentElement.scrollTop;
}
self.componentElement.style.top = viewPortTop + 'px';
}
}
var self = this;
this.aligning = false;
this.displayed = false;
this.componentElement = false;
this.closeButton = false;
this.init();
}
window.CategoryMenuComponent = function(componentElement)
{
var init = function()
{
if (componentElement.className.search('weekend') != -1)
{
weekendMenu = true;
}
if (self.id = parseInt(componentElement.className.split('categoryid_')[1], 10))
{
if (categoryInfo = window.categoriesLogics.getCategoryInfo(self.id))
{
var subCategoriesList = window.categoriesLogics.getSubCategoriesInfo(self.id);
if (subCategoriesList.length > 0)
{
popupObject = new SubCategoriesPopupComponent(subCategoriesList, self, componentElement, weekendMenu);
}
}
}
window.eventsManager.addHandler(componentElement, 'mouseenter', self.mouseEnterHandler);
window.eventsManager.addHandler(componentElement, 'mouseleave', self.mouseLeaveHandler);
}
this.mouseEnterHandler = function(event)
{
domHelper.addClass(componentElement, 'categories_menu_item_active')
if (popupObject)
{
popupObject.displayComponent();
}
}
this.mouseLeaveHandler = function(event)
{
var hidingRequired = true;
if (typeof event.relatedTarget == 'undefined' && typeof event.toElement == 'object')
{
event.relatedTarget = event.toElement;
}
if (event.relatedTarget)
{
if (popupObject && (event.relatedTarget == popupObject.componentElement || domHelper.isAChildOf(popupObject.componentElement, event.relatedTarget)))
{
hidingRequired = false;
}
else if (event.relatedTarget == componentElement || domHelper.isAChildOf(componentElement, event.relatedTarget))
{
hidingRequired = false;
}
}
if (hidingRequired)
{
domHelper.removeClass(componentElement, 'categories_menu_item_active')
if (popupObject)
{
popupObject.attemptHideComponent();
}
}
}
var self = this;
var weekendMenu = false;
var categoryInfo = false;
var popupObject = false;
this.id = false;
init();
}
window.SubCategoriesPopupComponent = function(subCategoriesList, menuComponent, referenceElement, weekendMenu)
{
var init = function()
{
if (navigator.appVersion.match(/MSIE ([\d.]+);/))
{
var version = navigator.appVersion.match(/MSIE ([\d.]+);/)[1];
if (version < 8)
{
useAnimation = false;
}
}
createDomStructure();
window.eventsManager.addHandler(componentElement, 'mouseenter', menuComponent.mouseEnterHandler);
window.eventsManager.addHandler(componentElement, 'mouseleave', menuComponent.mouseLeaveHandler);
}
var createDomStructure = function()
{
componentElement = document.createElement('div');
if (weekendMenu)
{
componentElement.className = 'subcategories_popup_block subcategories_popup_weekend';
}
else
{
componentElement.className = 'subcategories_popup_block';
}
document.body.appendChild(componentElement);
backgroundElement = document.createElement('div');
backgroundElement.className = 'subcategories_popup_background';
if (useAnimation)
{
opacityHandler.setOpacity(backgroundElement, 0);
}
else
{
backgroundElement.style.visibility = 'hidden';
}
componentElement.appendChild(backgroundElement);
var subElement1 = document.createElement('div');
subElement1.className = 'subcategories_popup_top_left';
backgroundElement.appendChild(subElement1);
var subElement2 = document.createElement('div');
subElement2.className = 'subcategories_popup_top';
backgroundElement.appendChild(subElement2);
var subElement3 = document.createElement('div');
subElement3.className = 'subcategories_popup_top_right';
backgroundElement.appendChild(subElement3);
var subElement4 = document.createElement('div');
subElement4.className = 'subcategories_popup_left';
backgroundElement.appendChild(subElement4);
var subElement5 = document.createElement('div');
subElement5.className = 'subcategories_popup_center';
backgroundElement.appendChild(subElement5);
var subElement6 = document.createElement('div');
subElement6.className = 'subcategories_popup_right';
backgroundElement.appendChild(subElement6);
var subElement7 = document.createElement('div');
subElement7.className = 'subcategories_popup_bottom_left';
backgroundElement.appendChild(subElement7);
var subElement8 = document.createElement('div');
subElement8.className = 'subcategories_popup_bottom';
backgroundElement.appendChild(subElement8);
var subElement9 = document.createElement('div');
subElement9.className = 'subcategories_popup_bottom_right';
backgroundElement.appendChild(subElement9);
topLineElement = document.createElement('div');
topLineElement.className = 'subcategories_popup_topline';
backgroundElement.appendChild(topLineElement);
if (useAnimation && navigator.appVersion.match(/MSIE ([\d.]+);/))
{
var version = navigator.appVersion.match(/MSIE ([\d.]+);/)[1];
if (version == 8)
{
internetExplorerBackgroundFix(subElement1);
internetExplorerBackgroundFix(subElement2);
internetExplorerBackgroundFix(subElement3);
internetExplorerBackgroundFix(subElement4);
internetExplorerBackgroundFix(subElement6);
internetExplorerBackgroundFix(subElement7);
internetExplorerBackgroundFix(subElement8);
internetExplorerBackgroundFix(subElement9);
}
}
contentElement = document.createElement('div');
contentElement.className = 'subcategories_popup_content';
if (useAnimation)
{
opacityHandler.setOpacity(contentElement, 0);
}
else
{
contentElement.style.visibility = 'hidden';
}
componentElement.appendChild(contentElement);
var groupElement = document.createElement('div');
groupElement.className = 'subcategories_popup_group';
contentElement.appendChild(groupElement);
if (subCategoriesList.length <= 5)
{
for (var i=0; i<subCategoriesList.length; i++)
{
var subCategory = new SubCategoriesPopupItemComponent(subCategoriesList[i]);
groupElement.appendChild(subCategory.componentElement);
}
}
else
{
for (var i=0; i<Math.ceil(subCategoriesList.length/2); i++)
{
var subCategory = new SubCategoriesPopupItemComponent(subCategoriesList[i]);
groupElement.appendChild(subCategory.componentElement);
}
var element = document.createElement('div');
element.className = 'subcategories_popup_delimiter';
groupElement.appendChild(element);
var groupElement = document.createElement('div');
groupElement.className = 'subcategories_popup_group';
contentElement.appendChild(groupElement);
for (var i=Math.ceil(subCategoriesList.length/2); i<subCategoriesList.length; i++)
{
var subCategory = new SubCategoriesPopupItemComponent(subCategoriesList[i]);
groupElement.appendChild(subCategory.componentElement);
}
}
self.componentElement = componentElement;
}
var internetExplorerBackgroundFix = function(element)
{
var fixImage = document.createElement('div');
fixImage.style.top = '0';
fixImage.style.left = '0';
fixImage.style.width = '100%';
fixImage.style.height = '100%';
var expression = /url\(\"(.*)?\"\)/i;
var result = false;
if (result = expression.exec(element.currentStyle.backgroundImage))
{
var currentBackground = result[1];
}
if (currentBackground)
{
fixImage.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+currentBackground+'",sizingMethod="scale")';
}
element.style.backgroundImage = 'none';
element.appendChild(fixImage);
}
this.displayComponent = function()
{
if (!displayed)
{
displayed = true;
var menuWidth = referenceElement.offsetWidth;
var menuHeight = referenceElement.offsetHeight;
componentElement.style.display = 'block';
var positions = window.domHelper.getElementPositions(referenceElement);
componentElement.style.left = positions.x+'px';
componentElement.style.top = (positions.y+menuHeight)+'px';
if (componentElement.offsetWidth < menuWidth + 6)
{
componentElement.style.width = (menuWidth + 6)+'px';
}
topLineElement.style.width = (menuWidth-3)+'px';
if (useAnimation)
{
effectsManager.startEffect('opacity', backgroundElement, {end:1, step:0.05});
effectsManager.startEffect('opacity', contentElement, {end:1, step:0.05});
}
else
{
backgroundElement.style.visibility = 'visible';
contentElement.style.visibility = 'visible';
}
}
}
this.attemptHideComponent = function()
{
startHideComponent();
}
var startHideComponent = function()
{
displayed = false;
if (useAnimation)
{
effectsManager.startEffect('opacity', backgroundElement, {end:0, step:0.15});
effectsManager.startEffect('opacity', contentElement, {end:0, step:0.15}, hideComponent);
}
else
{
backgroundElement.style.visibility = 'hidden';
contentElement.style.visibility = 'hidden';
hideComponent();
}
}
var hideComponent = function()
{
componentElement.style.display = 'none';
}
var self = this;
var componentElement = null;
var backgroundElement = null;
var contentElement = null;
var topLineElement = null;
var displayed = false;
var useAnimation = true;
this.componentElement = false;
init();
}
window.SubCategoriesPopupItemComponent = function(categoryInfo)
{
var init = function()
{
self.componentElement = document.createElement('a');
self.componentElement.href = categoryInfo.URL;
self.componentElement.className = 'subcategories_popup_item';
domHelper.setTextContent(self.componentElement, categoryInfo.title + ' (' + categoryInfo.eventsCount +')');
}
var self = this;
this.componentElement = false;
init();
}
window.ConcertDetailsComponent = function(componentElement)
{
var init = function()
{
contentElement = _('.concert_details_content', componentElement)[0];
if (rightElement = _('.concert_details_right', componentElement)[0])
{
var element = _('.place_short_info', rightElement)[0];
if (element)
{
new PlaceShortComponent(element);
}
var element = _('.promoter_short_info', rightElement)[0];
if (element)
{
new PromoterShortComponent(element);
}
}
if (commentsElement = _('.concert_details_comments', componentElement)[0])
{
if (commentsLinkElements = _('.social_tags_comments_link', componentElement))
{
for (var i=0; i<commentsLinkElements.length; i++)
{
window.eventsManager.addHandler(commentsLinkElements[i], 'click', commentsLinkClickHandler);
}
}
if (commentsReadMoreButton = _('.comments_readmore_button', componentElement)[0])
{
window.eventsManager.addHandler(commentsReadMoreButton, 'click', commentsLinkClickHandler);
}
commentsFormElement = _('.concert_details_comments_form', componentElement)[0];
lastCommentsElement = _('.concert_details_lastcomments', componentElement)[0];
if (commentsBackButtons = _('.comments_back', commentsElement))
{
for (var i=0; i<commentsBackButtons.length; i++)
{
window.eventsManager.addHandler(commentsBackButtons[i], 'click', commentsBackClickHandler);
}
}
}
if (videoElement = _('.concert_details_video', componentElement)[0])
{
videoCompatibleElement = _('.video_player_compatible', componentElement)[0];
videoIncompatibleElement = _('.video_player_incompatible', componentElement)[0];
if (videoLinkElement = _('.media_controls_video_link', componentElement)[0])
{
if (videoLinkElement.className.search('active') != -1)
{
window.eventsManager.addHandler(videoLinkElement, 'click', videoLinkClickHandler);
}
}
if (videoBackButtons = _('.video_player_back', videoElement))
{
for (var i=0; i<videoBackButtons.length; i++)
{
window.eventsManager.addHandler(videoBackButtons[i], 'click', videoBackClickHandler);
}
}
}
if (audioElement = _('.concert_details_audio', componentElement)[0])
{
if (audioLinkElement = _('.media_controls_audio_link', componentElement)[0])
{
if (audioLinkElement.className.search('active') != -1)
{
window.eventsManager.addHandler(audioLinkElement, 'click', audioLinkClickHandler);
}
}
var audioPlayerElement = _('.audio_player_block', componentElement)[0];
if (audioPlayerElement)
{
audioPlayer = new AudioPlayerComponent(audioPlayerElement);
}
}
if (imageLinkElement = _('.concert_details_image_link', componentElement)[0])
{
window.eventsManager.addHandler(imageLinkElement, 'click', imageLinkClickHandler);
var image = {src: imageLinkElement.href};
galleryComponent = new FullScreenGalleryComponent(new Array(image));
}
if (venueMapLinkElement = _('.concert_details_venuemap_link', componentElement)[0])
{
window.eventsManager.addHandler(venueMapLinkElement, 'click', venueMapLinkClickHandler);
var image = {src: venueMapLinkElement.href};
mapGalleryComponent = new FullScreenGalleryComponent(new Array(image));
}
if (document.location.href.search('comments=1') != -1)
{
displayComments();
}
};
var commentsLinkClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
displayComments();
};
var displayComments = function()
{
if (contentElement)
{
contentElement.style.display = 'none';
}
if (rightElement)
{
rightElement.style.display = 'none';
}
if (audioElement)
{
if (audioPlayer)
{
audioPlayer.stop();
}
audioElement.style.display = 'none';
}
if (videoElement)
{
videoElement.style.display = 'none';
}
if (commentsElement)
{
commentsElement.style.display = 'block';
}
if (lastCommentsElement)
{
lastCommentsElement.style.display = 'none';
}
if (commentsFormElement)
{
commentsFormElement.style.display = 'block';
}
};
var imageLinkClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
galleryComponent.displayImage();
};
var venueMapLinkClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
mapGalleryComponent.displayImage();
};
var videoBackClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
displayContent();
};
var commentsBackClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
displayContent();
};
var displayContent = function()
{
if (contentElement)
{
contentElement.style.display = 'block';
}
if (rightElement)
{
rightElement.style.display = 'block';
}
if (audioElement)
{
if (audioPlayer)
{
audioPlayer.stop();
}
audioElement.style.display = 'none';
}
if (videoElement)
{
videoElement.style.display = 'none';
}
if (commentsElement)
{
commentsElement.style.display = 'none';
}
if (lastCommentsElement)
{
lastCommentsElement.style.display = 'block';
}
if (commentsFormElement)
{
commentsFormElement.style.display = 'block';
}
};
var audioLinkClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
if (contentElement)
{
contentElement.style.display = 'block';
}
if (audioElement)
{
rightElement.style.display = 'block';
}
if (audioElement)
{
audioElement.style.display = 'block';
if (audioPlayer)
{
audioPlayer.play();
}
}
if (videoElement)
{
videoElement.style.display = 'none';
}
if (commentsElement)
{
commentsElement.style.display = 'none';
}
if (lastCommentsElement)
{
lastCommentsElement.style.display = 'block';
}
if (commentsFormElement)
{
commentsFormElement.style.display = 'block';
}
};
var videoLinkClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
if (contentElement)
{
contentElement.style.display = 'none';
}
if (rightElement)
{
rightElement.style.display = 'none';
}
if (audioElement)
{
if (audioPlayer)
{
audioPlayer.stop();
}
audioElement.style.display = 'none';
}
if (videoElement)
{
videoElement.style.display = 'block';
var hasReqestedVersion = DetectFlashVer(10, 0, 0);
if (hasReqestedVersion)
{
videoCompatibleElement.style.display = 'block';
videoIncompatibleElement.style.display = 'none';
}
else
{
videoCompatibleElement.style.display = 'none';
videoIncompatibleElement.style.display = 'block';
}
}
if (commentsElement)
{
commentsElement.style.display = 'none';
}
if (lastCommentsElement)
{
lastCommentsElement.style.display = 'block';
}
if (commentsFormElement)
{
commentsFormElement.style.display = 'block';
}
};
var self = this;
var contentLinkElement = false;
var commentsReadMoreButton = false;
var commentsLinkElements = false;
var audioLinkElement = false;
var videoLinkElement = false;
var imageLinkElement = false;
var venueMapLinkElement = false;
var commentsBackButtons = false;
var videoBackButtons = false;
var videoIncompatibleElement = false;
var videoCompatibleElement = false;
var rightElement = false;
var contentElement = false;
var commentsElement = false;
var commentsFormElement = false;
var lastCommentsElement = false;
var audioElement = false;
var audioPlayer = false;
var videoElement = false;
var galleryComponent = false;
var mapGalleryComponent = false;
init();
};
window.PromoterShortComponent = function(componentElement)
{
var init = function()
{
if (imageLink = _('.promoter_short_image', componentElement)[0])
{
eventsManager.addHandler(imageLink, 'click', imageLinkClickHandler);
}
if (titleLink = _('.promoter_short_title', componentElement)[0])
{
eventsManager.addHandler(componentElement, 'click', titleLinkClickHandler);
}
if (homePageLink = _('.promoter_short_link', componentElement)[0])
{
eventsManager.addHandler(homePageLink, 'click', homePageLinkClickHandler);
}
}
var imageLinkClickHandler = function(event)
{
eventsManager.preventDefaultAction(event);
}
var titleLinkClickHandler = function(event)
{
eventsManager.cancelBubbling(event);
eventsManager.preventDefaultAction(event);
document.location.href = titleLink.href;
}
var homePageLinkClickHandler = function(event)
{
eventsManager.cancelBubbling(event);
eventsManager.preventDefaultAction(event);
window.open(homePageLink.href);
}
var self = this;
var titleLink = false;
var homePageLink = false;
init();
};
window.PlaceShortComponent = function(componentElement)
{
var init = function()
{
if (titleLink = _('.place_short_title', componentElement)[0])
{
eventsManager.addHandler(componentElement, 'click', titleLinkClickHandler);
}
if (homePageLink = _('.place_short_link', componentElement)[0])
{
eventsManager.addHandler(homePageLink, 'click', homePageLinkClickHandler);
}
};
var titleLinkClickHandler = function(event)
{
eventsManager.cancelBubbling(event);
eventsManager.preventDefaultAction(event);
document.location.href = titleLink.href;
};
var homePageLinkClickHandler = function(event)
{
eventsManager.cancelBubbling(event);
eventsManager.preventDefaultAction(event);
window.open(homePageLink.href);
};
var self = this;
var titleLink = false;
var homePageLink = false;
init();
};
window.ConcertTableRowItemComponent = function(componentElement)
{
var init = function()
{
concertId = parseInt(componentElement.className.split('concertid_')[1], 10);
if (linkElement = _('.concert_tablerow_title_link', componentElement)[0])
{
window.eventsManager.addHandler(componentElement, 'click', clickHandler);
}
if (placeLinkElement = _('.concert_tablerow_place_link', componentElement)[0])
{
window.eventsManager.addHandler(placeLinkElement, 'click', placeLinkClickHandler);
}
if (buyButtonElement = _('.button_buy', componentElement)[0])
{
window.eventsManager.addHandler(buyButtonElement, 'click', buyClickHandler);
}
if (salesPointsLinkElement = _('.concert_tablerow_delivery_salespoints', componentElement)[0])
{
window.eventsManager.addHandler(salesPointsLinkElement, 'click', salesPointsClickHandler);
}
if (priceInfoElement = _('.concert_tablerow_price_info', componentElement)[0])
{
if (typeof concertPricesTexts[concertId] != 'undefined')
{
infoPopup = new PopupComponent(concertPricesTexts[concertId]);
window.eventsManager.addHandler(priceInfoElement, 'mouseenter', priceInfoMouseOverHandler);
window.eventsManager.addHandler(priceInfoElement, 'mouseleave', priceInfoMouseOutHandler);
}
}
}
var clickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
document.location.href = linkElement.href;
}
var buyClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
window.eventsManager.cancelBubbling(event);
}
var placeLinkClickHandler = function(event)
{
window.eventsManager.cancelBubbling(event);
}
var salesPointsClickHandler = function(event)
{
window.eventsManager.cancelBubbling(event);
}
var priceInfoMouseOverHandler = function()
{
var positions = domHelper.getElementPositions(priceInfoElement);
infoPopup.displayComponent(positions.x, positions.y, 6);
}
var priceInfoMouseOutHandler = function()
{
infoPopup.hideComponent();
}
var self = this;
var linkElement = false;
var placeLinkElement = false;
var buyButtonElement = false;
var priceInfoElement = false;
var salesPointsLinkElement = false;
var infoPopup = false;
var concertId = false;
init();
}
window.DropDownComponent = function(importedElement, parameters)
{
var init = function()
{
if (typeof importedElement != 'undefined')
{
parseSelectElement(importedElement);
}
if (typeof parameters != 'undefined')
{
parseParameters(parameters);
}
prepareDomStructure();
window.eventsManager.addHandler(self.selectorElement, 'change', refreshStatus);
refreshStatus();
}
var parseSelectElement = function(importedElement)
{
optionsDataList = new Array();
optionsDataIndex = {};
if (importedElement.tagName == 'select' || importedElement.tagName == 'SELECT')
{
self.selectorElement = importedElement;
for (var i = 0; i < importedElement.options.length; i++)
{
var optionElement = importedElement.options[i];
var optionData = {};
optionData['value'] = optionElement.value;
optionData['className'] = optionElement.className;
optionData['text'] = optionElement.text;
optionData['selected'] = optionElement.selected;
optionsDataList.push(optionData);
optionsDataIndex[optionData.value] = optionData;
}
importedElement.style.display = 'none';
}
customClassName = '';
var classes = self.selectorElement.className.split(' ');
for (var i=0; i<classes.length; i++)
{
if (classes[i] != 'dropDownComponent')
{
customClassName = customClassName+' '+classes[i];
}
}
}
var parseParameters = function(parameters)
{
if (typeof parameters.optionsData != 'undefined')
{
optionsDataList = parameters.optionsData;
for (var i = 0; i < optionsDataList.length; i++)
{
var optionData = optionsDataList[i];
optionsDataIndex[optionData.value] = optionData;
}
}
if (typeof parameters.changeCallback != 'undefined')
{
changeCallback = parameters.changeCallback;
}
if (typeof parameters.className != 'undefined')
{
customClassName = parameters.className;
}
}
var prepareDomStructure = function()
{
var componentClass = 'dropdown_block';
if (customClassName != '')
{
componentClass += ' '+customClassName;
}
self.componentElement = document.createElement('a');
self.componentElement.href = '';
self.componentElement.className = componentClass;
window.eventsManager.addHandler(self.componentElement, 'click', clickHandler);
window.eventsManager.addHandler(self.componentElement, 'focus', clearSearchTitle);
window.eventsManager.addHandler(self.componentElement, 'blur', function(){window.setTimeout(self.hideList, 300);});
window.eventsManager.addHandler(self.componentElement, 'keydown', keyPressHandler);
var element = document.createElement('span');
element.className = 'dropdown_block_left';
self.componentElement.appendChild(element);
var element = document.createElement('span');
element.className = 'dropdown_block_center';
self.componentElement.appendChild(element);
var element = document.createElement('span');
element.className = 'dropdown_block_right';
self.componentElement.appendChild(element);
var element = document.createElement('span');
element.className = 'dropdown_arrow';
self.componentElement.appendChild(element);
titleElement = document.createElement('span');
titleElement.className = 'dropdown_title';
self.componentElement.appendChild(titleElement);
if (!self.selectorElement)
{
self.selectorElement = document.createElement('select');
for (var i=0; i<optionsDataList.length; i++)
{
var info = optionsDataList[i];
var option = document.createElement('option');
option.value = info.value;
option.text = info.text;
option.className = info.className;
option.selected = info.selected;
try
{
self.selectorElement.add(option, null);
}
catch(ex)
{
self.selectorElement.add(option);
}
}
self.componentElement.appendChild(self.selectorElement);
}
self.selectorElement.style.display = 'none';
}
var clickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
window.eventsManager.cancelBubbling(event);
if (!optionsDataComponent)
{
optionsDataComponent = new DropDownComponentList(self, optionsDataList);
document.body.appendChild(optionsDataComponent.componentElement);
}
if (optionsDataComponent.displayed)
{
optionsDataComponent.hideComponent();
}
else
{
optionsDataComponent.displayComponent();
}
}
var refreshStatus = function()
{
self.selectedIndex = self.selectorElement.selectedIndex;
if (optionsDataList[self.selectedIndex])
{
self.text = optionsDataList[self.selectedIndex].text;
}
setTextContent(titleElement, self.text);
}
var keyPressHandler = function(event)
{
if (event.keyCode == '40')
{
window.eventsManager.preventDefaultAction(event);
setNextOption();
}
if (event.keyCode == '38')
{
window.eventsManager.preventDefaultAction(event);
setPreviousOption();
}
if (event.keyCode == '35')
{
window.eventsManager.preventDefaultAction(event);
setLastOption();
}
if (event.keyCode == '36')
{
window.eventsManager.preventDefaultAction(event);
setFirstOption();
}
if (event.keyCode == '8')
{
window.eventsManager.preventDefaultAction(event);
var title = getCurrentSearchTitle(false);
setFoundTitle(title);
}
if (event.keyCode >= '65' && event.keyCode <= '90' || event.keyCode == '32')
{
window.eventsManager.preventDefaultAction(event);
var letter = String.fromCharCode(event.keyCode);
var title = getCurrentSearchTitle(letter);
setFoundTitle(title);
}
}
var getCurrentSearchTitle = function(letter)
{
if (letter === false)
{
currentSearchTitle = currentSearchTitle.substring(0, currentSearchTitle.length - 1);
}
else if (typeof letter !== 'undefined')
{
currentSearchTitle = currentSearchTitle+letter;
}
return currentSearchTitle;
}
var clearSearchTitle = function()
{
currentSearchTitle = '';
}
var setFoundTitle = function(title)
{
var expression = new RegExp('^'+title,'i');
for (var i=0; i<optionsDataList.length; i++)
{
if (expression.test(optionsDataList[i].text))
{
self.setValue(optionsDataList[i].value);
break;
}
}
window.clearTimeout(searchTitleTimeout);
searchTitleTimeout = window.setTimeout(clearSearchTitle, 2000);
}
var setFirstOption = function()
{
if (optionsDataList.length > 0)
{
self.setSelectedIndex(0);
}
clearSearchTitle();
}
var setLastOption = function()
{
if (optionsDataList.length > 0)
{
self.setSelectedIndex(optionsDataList.length-1);
}
clearSearchTitle();
}
var setNextOption = function()
{
if (self.selectedIndex !== false)
{
var nextOptionNumber = self.selectedIndex + 1;
if (nextOptionNumber < optionsDataList.length)
{
self.setSelectedIndex(nextOptionNumber);
clearSearchTitle();
}
}
else
{
setFirstOption();
}
}
var setPreviousOption = function()
{
if (self.selectedIndex !== false)
{
var previousOptionNumber = self.selectedIndex - 1;
if (previousOptionNumber >= 0)
{
self.setSelectedIndex(previousOptionNumber);
clearSearchTitle();
}
}
}
var setTextContent = function(element, text)
{
while(element.firstChild)
{
element.removeChild(element.firstChild);
}
element.appendChild(document.createTextNode(text));
}
this.setSelectedIndex = function(selectedIndex)
{
self.selectorElement.selectedIndex = selectedIndex;
window.eventsManager.fireEvent(self.selectorElement, 'change');
if (changeCallback)
{
changeCallback(self);
}
}
this.setValue = function(value)
{
self.selectorElement.value = value;
window.eventsManager.fireEvent(self.selectorElement, 'change');
if (changeCallback)
{
changeCallback(self);
}
}
this.hideList = function()
{
if (optionsDataComponent.displayed)
{
optionsDataComponent.hideComponent();
}
}
this.update = function()
{
parseSelectElement(self.selectorElement);
if (optionsDataComponent)
{
optionsDataComponent.updateInfo(optionsDataList);
}
refreshStatus();
}
var self = this;
this.componentElement = false;
this.selectedIndex = false;
this.value = false;
this.text = false;
this.selectorElement = false;
var selectedOptionNumber = false;
var titleElement = false;
var optionsDataComponent = false;
var searchTitleTimeout = false;
var currentSearchTitle = false;
var changeCallback = false;
var optionsDataList = new Array();
var optionsDataIndex = {};
var customClassName = '';
init();
};
window.DropDownComponentList = function(parentObject, optionsData)
{
var init = function()
{
prepareDomStructure();
}
var prepareDomStructure = function()
{
self.componentElement = document.createElement('div');
self.componentElement.className = 'dropdown_list';
self.componentElement.style.display = 'none';
window.eventsManager.addHandler(self.componentElement, 'mousewheel', mouseWheelHandler);
var element = document.createElement('span');
element.className = 'dropdown_list_top_left';
self.componentElement.appendChild(element);
var element = document.createElement('span');
element.className = 'dropdown_list_top';
self.componentElement.appendChild(element);
var element = document.createElement('span');
element.className = 'dropdown_list_top_right';
self.componentElement.appendChild(element);
var element = document.createElement('span');
element.className = 'dropdown_list_left';
self.componentElement.appendChild(element);
var element = document.createElement('span');
element.className = 'dropdown_list_center';
self.componentElement.appendChild(element);
var element = document.createElement('span');
element.className = 'dropdown_list_right';
self.componentElement.appendChild(element);
var element = document.createElement('span');
element.className = 'dropdown_list_bottom_left';
self.componentElement.appendChild(element);
var element = document.createElement('span');
element.className = 'dropdown_list_bottom';
self.componentElement.appendChild(element);
var element = document.createElement('span');
element.className = 'dropdown_list_bottom_right';
self.componentElement.appendChild(element);
contentElement = document.createElement('span');
contentElement.className = 'dropdown_list_content';
self.componentElement.appendChild(contentElement);
scrollUpButton = document.createElement('span');
scrollUpButton.className = 'dropdown_list_scrollup';
self.componentElement.appendChild(scrollUpButton);
window.eventsManager.addHandler(scrollUpButton, 'mouseover', startScrollUp);
window.eventsManager.addHandler(scrollUpButton, 'mouseout', stopScroll);
scrollDownButton = document.createElement('span');
scrollDownButton.className = 'dropdown_list_scrolldown';
self.componentElement.appendChild(scrollDownButton);
window.eventsManager.addHandler(scrollDownButton, 'mouseover', startScrollDown);
window.eventsManager.addHandler(scrollDownButton, 'mouseout', stopScroll);
self.updateInfo(optionsData)
}
var mouseWheelHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
var delta = window.mouseTracker.getDelta(event);
contentElement.scrollTop = contentElement.scrollTop - listItemHeight * delta;
}
var refreshStatus = function()
{
if (listItems.length > 0)
{
listItemHeight = listItems[0].componentElement.offsetHeight;
}
if (self.componentElement.offsetWidth < parentObject.componentElement.offsetWidth)
{
self.componentElement.style.width = parentObject.componentElement.offsetWidth + 'px';
}
if (window.pageYOffset)
{
var viewPortTop = window.pageYOffset;
}
else
{
var viewPortTop = document.documentElement.scrollTop;
}
if (window.innerHeight)
{
var viewPortHeight = window.innerHeight;
}
else
{
var viewPortHeight = document.documentElement.offsetHeight;
}
var dropDownPositions = getElementPositions(parentObject.componentElement);
var dropDownLeft = dropDownPositions.x;
var dropDownTop = dropDownPositions.y;
var dropDownHeight = parentObject.componentElement.offsetHeight;
var buttonsOffsets = scrollUpButton.offsetHeight + scrollDownButton.offsetHeight;
contentElement.style.height = 'auto';
var fullHeight = contentElement.offsetHeight;
var maximumHeightAbove = (dropDownTop - viewPortTop) - buttonsOffsets - screenOffset;
var maximumHeightBelow = (viewPortTop + viewPortHeight - buttonsOffsets - screenOffset) - (dropDownTop + dropDownHeight);
var minHeight = listItemHeight * minListItemsCount;
var appliedHeight = false;
var position = false;
if (maximumHeightBelow > minHeight)
{
position = 'below';
if (fullHeight > maximumHeightBelow)
{
appliedHeight = maximumHeightBelow;
}
else
{
appliedHeight = fullHeight;
}
}
else if (maximumHeightAbove > minHeight)
{
position = 'above';
if (fullHeight > maximumHeightAbove)
{
appliedHeight = maximumHeightAbove;
}
else
{
appliedHeight = fullHeight;
}
}
else
{
position = 'below';
appliedHeight = minHeight;
}
contentElement.style.height = appliedHeight + 'px';
if (position == 'above')
{
var leftPosition = (dropDownLeft);
var topPosition = dropDownTop - appliedHeight - buttonsOffsets;
}
else
{
var leftPosition = (dropDownLeft);
var topPosition = (dropDownTop + dropDownHeight);
}
self.componentElement.style.left = leftPosition + 'px';
self.componentElement.style.top = topPosition + 'px';
if (contentElement.scrollHeight > contentElement.offsetHeight)
{
scrollUpButton.style.visibility = 'visible';
scrollDownButton.style.visibility = 'visible';
if (contentElement.offsetHeight + contentElement.scrollTop < parentObject.selectedIndex * listItemHeight + listItemHeight)
{
contentElement.scrollTop = parentObject.selectedIndex * listItemHeight + listItemHeight - contentElement.offsetHeight;
}
else if (contentElement.scrollTop > parentObject.selectedIndex * listItemHeight)
{
contentElement.scrollTop = parentObject.selectedIndex * listItemHeight;
}
}
else
{
scrollUpButton.style.visibility = 'hidden';
scrollDownButton.style.visibility = 'hidden';
}
}
var getElementPositions = function(domElement)
{
var elementLeft = 0;
var elementTop = 0;
if (domElement.offsetParent)
{
var elementLeft = domElement.offsetLeft;
var elementTop = domElement.offsetTop;
while (domElement = domElement.offsetParent)
{
if (domElement.tagName.toLowerCase() != 'body' && domElement.tagName.toLowerCase() != 'html')
{
elementLeft += domElement.offsetLeft - domElement.scrollLeft;
elementTop += domElement.offsetTop - domElement.scrollTop;
}
else
{
elementLeft += domElement.offsetLeft;
elementTop += domElement.offsetTop;
}
}
}
return {x: elementLeft, y: elementTop};
}
var startScrollUp = function()
{
scrollTimeOut = window.setTimeout(scrollUp, scrollDelay);
}
var startScrollDown = function()
{
scrollTimeOut = window.setTimeout(scrollDown, scrollDelay);
}
var scrollUp = function()
{
contentElement.scrollTop = contentElement.scrollTop - scrollAmount;
scrollTimeOut = window.setTimeout(scrollUp, scrollDelay);
}
var scrollDown = function()
{
contentElement.scrollTop = contentElement.scrollTop + scrollAmount;
scrollTimeOut = window.setTimeout(scrollDown, scrollDelay);
}
var stopScroll = function()
{
window.clearTimeout(scrollTimeOut);
}
this.updateInfo = function(optionsData)
{
listItems = new Array();
while (contentElement.firstChild)
{
contentElement.removeChild(contentElement.firstChild);
}
for (var i=0; i<optionsData.length; i++)
{
var listItem = new DropDownComponentListItem(self, optionsData[i]);
contentElement.appendChild(listItem.componentElement);
listItems.push(listItem);
}
}
this.itemClicked = function(listItem)
{
self.hideComponent();
parentObject.setValue(listItem.value);
}
this.displayComponent = function()
{
if (self.componentElement)
{
self.componentElement.style.visibility = 'hidden';
self.componentElement.style.display = 'block';
refreshStatus();
self.componentElement.style.visibility = 'visible';
self.displayed = true;
}
}
this.hideComponent = function()
{
if (self.componentElement)
{
self.componentElement.style.display = 'none';
self.displayed = false;
}
}
var self = this;
var listItems = new Array();
var screenOffset = 30;
var listItemHeight = 0;
var scrollDelay = 25;
var scrollAmount = 3;
var scrollTimeOut = false;
var minListItemsCount = 10;
var contentElement = false;
var scrollUpButton = false;
var scrollDownButton = false;
this.componentElement = false;
this.value = false;
this.displayed = false;
init();
};
window.DropDownComponentListItem = function(parentObject, optionData)
{
var init = function()
{
self.value = optionData.value;
optionText = optionData.text;
customClassName = optionData.className;
prepareDomStructure();
}
var prepareDomStructure = function()
{
self.componentElement = document.createElement('a');
self.componentElement.href = '';
var newClassName = 'dropdown_option';
if (customClassName)
{
newClassName = newClassName + ' '+customClassName;
}
self.componentElement.className = newClassName;
window.eventsManager.addHandler(self.componentElement, 'click', clickHandler);
setTextContent(self.componentElement, optionText);
}
var clickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
window.eventsManager.cancelBubbling(event);
parentObject.itemClicked(self);
}
var setTextContent = function(element, text)
{
while(element.firstChild)
{
element.removeChild(element.firstChild);
}
element.appendChild(document.createTextNode(text));
}
var self = this;
this.componentElement = false;
this.value = false;
var optionText = false;
var customClassName = false;
init();
};
window.EventsListItemComponent = function(componentElement)
{
var init = function()
{
if (linkElement = _('.eventslist_item_title', componentElement)[0])
{
window.eventsManager.addHandler(componentElement, 'click', clickHandler);
}
if (buttonElement = _('.eventslist_item_button', componentElement)[0])
{
window.eventsManager.addHandler(buttonElement, 'click', buttonClickHandler);
}
if (commentsButtonElement = _('.eventslist_item_comments', componentElement)[0])
{
window.eventsManager.addHandler(commentsButtonElement, 'click', commentsClickHandler);
}
if (placeLink = _('.eventslist_item_place_link', componentElement)[0])
{
window.eventsManager.addHandler(placeLink, 'click', placeClickHandler);
}
if (showLink = _('.eventslist_item_show_link', componentElement)[0])
{
window.eventsManager.addHandler(showLink, 'click', showClickHandler);
}
}
var clickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
document.location.href = linkElement.href;
}
var buttonClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
window.eventsManager.cancelBubbling(event);
}
var commentsClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
window.eventsManager.cancelBubbling(event);
}
var placeClickHandler = function(event)
{
window.eventsManager.cancelBubbling(event);
}
var showClickHandler = function(event)
{
window.eventsManager.cancelBubbling(event);
}
var self = this;
var linkElement = false;
var buttonElement = false;
var commentsButtonElement = false;
var placeLink = false;
init();
}
window.FastSearchFormComponent = function(componentElement)
{
var init = function()
{
if (formElement = _('.fastsearch_form', componentElement)[0])
{
eventsManager.addHandler(formElement, 'keyup', formKeyUpHandler);
if (submitButton = _('.fastsearch_button', componentElement)[0])
{
eventsManager.addHandler(submitButton, 'click', submitHandler);
}
}
if (endDateSelector = _('.fastsearch_enddate', componentElement)[0])
{
eventsManager.addHandler(endDateSelector, 'focus', endDateFocusHandler);
eventsManager.addHandler(endDateSelector, 'blur', endDateBlurHandler);
}
if (startDateSelector = _('.fastsearch_startdate', componentElement)[0])
{
eventsManager.addHandler(startDateSelector, 'change', startDateChangeHandler);
eventsManager.addHandler(startDateSelector, 'focus', startDateFocusHandler);
eventsManager.addHandler(startDateSelector, 'blur', startDateBlurHandler);
}
}
var submitHandler = function(event)
{
if (startDateSelector.value == window.translations.piletilevi['select_startdate'])
{
startDateSelector.value = '';
}
if (endDateSelector.value == window.translations.piletilevi['select_enddate'])
{
endDateSelector.value = '';
}
formElement.submit();
}
var formKeyUpHandler = function(event)
{
}
var startDateFocusHandler = function()
{
if (startDateSelector.value == window.translations.piletilevi['select_startdate'])
{
startDateSelector.value = '';
}
}
var startDateBlurHandler = function()
{
if (startDateSelector.value == '')
{
startDateSelector.value = window.translations.piletilevi['select_startdate'];
}
}
var endDateFocusHandler = function()
{
if (endDateSelector.value == window.translations.piletilevi['select_enddate'])
{
endDateSelector.value = '';
}
}
var endDateBlurHandler = function()
{
if (endDateSelector.value == '')
{
endDateSelector.value = window.translations.piletilevi['select_enddate'];
}
}
var startDateChangeHandler = function()
{
if (endDateSelector.value == '' || endDateSelector.value == window.translations.piletilevi['select_enddate'])
{
var strings = startDateSelector.value.split('.');
if (strings.length == 3)
{
var date = new Date(strings[2], strings[1]-1, strings[0]);
date.setTime(date.getTime()+7*60*60*24*1000);
endDateSelector.value = formatNumber(date.getDate(), 2)+'.'+formatNumber(date.getMonth()+1, 2)+'.'+formatNumber(date.getFullYear(), 4);
}
}
}
var formatNumber = function(number, decimals)
{
number = number.toString();
if (number.length < decimals)
{
for (a=decimals-number.length; a>0; a--)
{
number = '0'+number;
}
}
return number;
}
var self = this;
var formElement = false;
var submitButton = false;
var startDateSelector = false;
var endDateSelector = false;
init();
}
window.NewsDetailsComponent = function(componentElement)
{
var init = function()
{
contentElement = _('.news_details_content', componentElement)[0];
if (commentsElement = _('.news_details_comments', componentElement)[0])
{
if (commentsLinkElements = _('.social_tags_comments_link', componentElement))
{
for (var i=0; i<commentsLinkElements.length; i++)
{
window.eventsManager.addHandler(commentsLinkElements[i], 'click', commentsLinkClickHandler);
}
}
if (commentsReadMoreButton = _('.comments_readmore_button', componentElement)[0])
{
window.eventsManager.addHandler(commentsReadMoreButton, 'click', commentsLinkClickHandler);
}
commentsFormElement = _('.news_details_comments_form', componentElement)[0];
lastCommentsElement = _('.news_details_lastcomments', componentElement)[0];
if (commentsBackButtons = _('.comments_back', commentsElement))
{
for (var i=0; i<commentsBackButtons.length; i++)
{
window.eventsManager.addHandler(commentsBackButtons[i], 'click', commentsBackClickHandler);
}
}
}
if (document.location.href.search('comments=1') != -1)
{
displayComments();
}
}
var commentsLinkClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
displayComments();
}
var displayComments = function()
{
if (contentElement)
{
contentElement.style.display = 'none';
}
if (commentsElement)
{
commentsElement.style.display = 'block';
}
if (lastCommentsElement)
{
lastCommentsElement.style.display = 'none';
}
if (commentsFormElement)
{
commentsFormElement.style.display = 'block';
}
}
var commentsBackClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
displayContent();
}
var displayContent = function()
{
if (contentElement)
{
contentElement.style.display = 'block';
}
if (commentsElement)
{
commentsElement.style.display = 'none';
}
if (lastCommentsElement)
{
lastCommentsElement.style.display = 'block';
}
if (commentsFormElement)
{
commentsFormElement.style.display = 'block';
}
}
var self = this;
var contentElement = false;
var commentsElement = false;
var commentsLinkElements = false;
var commentsReadMoreButton = false;
var commentsFormElement = false;
var lastCommentsElement = false;
var commentsBackButtons = false;
init();
}
window.NewsListItemComponent = function(componentElement)
{
var init = function()
{
if (linkElement = _('.more_info', componentElement)[0])
{
window.eventsManager.addHandler(componentElement, 'click', clickHandler);
}
if (commentsLinkElement = _('.comments_link', componentElement)[0])
{
window.eventsManager.addHandler(commentsLinkElement, 'click', commentsClickHandler);
}
}
var clickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
window.eventsManager.cancelBubbling(event);
if (linkElement)
{
document.location.href = linkElement.href;
}
}
var commentsClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
window.eventsManager.cancelBubbling(event);
if (commentsLinkElement)
{
document.location.href = commentsLinkElement.href;
}
}
var self = this;
var linkElement = false;
var commentsLinkElement = false;
init();
}
window.PlacesListItemComponent = function(componentElement)
{
var init = function()
{
if (linkElement = _('.place_listitem_title', componentElement)[0])
{
window.eventsManager.addHandler(componentElement, 'click', clickHandler);
}
}
var clickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
document.location.href = linkElement.href;
}
var self = this;
var linkElement = false;
init();
}
window.PopupComponent = function(content)
{
var init = function()
{
createDomElements();
if (content)
{
contentElement.innerHTML = content;
}
}
var createDomElements = function()
{
componentElement = document.createElement('div');
componentElement.className = 'rounded_block rounded_darkgray mouseover_popup';
componentElement.style.display = 'none';
componentElement.style.position = 'absolute';
componentElement.style.zIndex = '50';
document.body.appendChild(componentElement);
var subElement = document.createElement('div');
subElement.className = 'rounded_top_left';
componentElement.appendChild(subElement);
var subElement = document.createElement('div');
subElement.className = 'rounded_top';
componentElement.appendChild(subElement);
var subElement = document.createElement('div');
subElement.className = 'rounded_top_right';
componentElement.appendChild(subElement);
var subElement = document.createElement('div');
subElement.className = 'rounded_left';
componentElement.appendChild(subElement);
var subElement = document.createElement('div');
subElement.className = 'rounded_center';
componentElement.appendChild(subElement);
var subElement = document.createElement('div');
subElement.className = 'rounded_right';
componentElement.appendChild(subElement);
var subElement = document.createElement('div');
subElement.className = 'rounded_bottom_left';
componentElement.appendChild(subElement);
var subElement = document.createElement('div');
subElement.className = 'rounded_bottom';
componentElement.appendChild(subElement);
var subElement = document.createElement('div');
subElement.className = 'rounded_bottom_right';
componentElement.appendChild(subElement);
contentElement = document.createElement('div');
contentElement.className = 'rounded_content mouseover_popup_content';
componentElement.appendChild(contentElement);
}
this.displayComponent = function(x, y, offset)
{
componentElement.style.visibility = 'hidden';
componentElement.style.display = 'block';
if (window.pageYOffset)
{
var viewPortTop = window.pageYOffset;
}
else
{
var viewPortTop = document.documentElement.scrollTop;
}
if (window.innerHeight)
{
var viewPortHeight = window.innerHeight;
}
else
{
var viewPortHeight = document.documentElement.offsetHeight;
}
var maximumHeightAbove = y - viewPortTop - offset;
var maximumHeightBelow = viewPortTop + viewPortHeight - y;
var leftPosition = x - componentElement.offsetWidth - offset;
if (maximumHeightBelow > maximumHeightAbove)
{
var topPosition = y + offset;
}
else
{
var topPosition = y - componentElement.offsetHeight;
}
componentElement.style.left = leftPosition + 'px';
componentElement.style.top = topPosition + 'px';
componentElement.style.visibility = 'visible';
}
this.hideComponent = function()
{
componentElement.style.display = 'none';
}
var self = this;
var componentElement = false;
var contentElement = false;
var titleElement = false;
init();
}
window.PromotersListItemComponent = function(componentElement)
{
var init = function()
{
if (linkElement = _('.promoter_listitem_title', componentElement)[0])
{
window.eventsManager.addHandler(componentElement, 'click', clickHandler);
}
}
var clickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
document.location.href = linkElement.href;
}
var self = this;
var linkElement = false;
init();
}
window.SearchResultsItemComponent = function(componentElement)
{
var init = function()
{
if (linkElement = _('.searchresults_item_link', componentElement)[0])
{
window.eventsManager.addHandler(componentElement, 'click', clickHandler);
}
}
var clickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
document.location.href = linkElement.href;
}
var self = this;
var linkElement = false;
init();
}
window.SpecialOfferComponent = function(componentElement)
{
var init = function()
{
if (linkElement = _('.lastminute_button', componentElement)[0])
{
window.eventsManager.addHandler(componentElement, 'click', clickHandler);
}
}
var clickHandler = function(event)
{
var targetElement = false;
if (event.target)
{
targetElement = event.target;
}
if (event.srcElement)
{
targetElement = event.srcElement;
}
if (targetElement && targetElement.tagName.toLowerCase() == 'a')
{
}
else
{
window.eventsManager.preventDefaultAction(event);
window.eventsManager.cancelBubbling(event);
if (linkElement)
{
document.location.href = linkElement.href;
}
}
}
var self = this;
var linkElement = false;
var commentsLinkElement = false;
var commentsLinkElement = false;
init();
}
window.ShortNewsComponent = function(componentElement)
{
var init = function()
{
if (linkElement = _('.shortnews_readmore_link', componentElement)[0])
{
window.eventsManager.addHandler(componentElement, 'click', clickHandler);
}
if (commentsLinkElement = _('.shortnews_comments_link', componentElement)[0])
{
window.eventsManager.addHandler(commentsLinkElement, 'click', commentsClickHandler);
}
}
var clickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
window.eventsManager.cancelBubbling(event);
if (linkElement)
{
document.location.href = linkElement.href;
}
}
var commentsClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
window.eventsManager.cancelBubbling(event);
if (commentsLinkElement)
{
document.location.href = commentsLinkElement.href;
}
}
var self = this;
var linkElement = false;
var commentsLinkElement = false;
var commentsLinkElement = false;
init();
}
window.ShowDetailsComponent = function(componentElement)
{
var init = function()
{
bottomElement = _('.show_details_bottom', componentElement)[0];
if (contentElement = _('.show_details_content', componentElement)[0])
{
contentCenterElement = _('.show_details_content_center', componentElement)[0];
if (contentCenterElement.scrollHeight > contentCenterElement.offsetHeight)
{
if (controlsElement = _('.show_details_controls', componentElement)[0])
{
controlsElement.style.visibility = 'visible';
if (moreInfoButton = _('.show_details_moreinfo', controlsElement)[0])
{
window.eventsManager.addHandler(moreInfoButton, 'click', moreInfoButtonClickHandler);
}
}
}
if (contentLinkElement = _('.show_details_content_link', componentElement)[0])
{
window.eventsManager.addHandler(contentLinkElement, 'click', contentLinkClickHandler);
}
}
if (commentsElement = _('.show_details_comments', componentElement)[0])
{
if (commentsLinkElement = _('.social_tags_comments_link', componentElement)[0])
{
window.eventsManager.addHandler(commentsLinkElement, 'click', commentsLinkClickHandler);
}
if (commentsBackButtons = _('.comments_back', commentsElement))
{
for (var i=0; i<commentsBackButtons.length; i++)
{
window.eventsManager.addHandler(commentsBackButtons[i], 'click', commentsBackClickHandler);
}
}
}
if (videoElement = _('.show_details_video', componentElement)[0])
{
videoCompatibleElement = _('.video_player_compatible', componentElement)[0];
videoIncompatibleElement = _('.video_player_incompatible', componentElement)[0];
if (videoLinkElement = _('.media_controls_video_link', componentElement)[0])
{
if (videoLinkElement.className.search('active') != -1)
{
window.eventsManager.addHandler(videoLinkElement, 'click', videoLinkClickHandler);
}
}
if (videoBackButtons = _('.video_player_back', videoElement))
{
for (var i=0; i<videoBackButtons.length; i++)
{
window.eventsManager.addHandler(videoBackButtons[i], 'click', videoBackClickHandler);
}
}
}
if (audioElement = _('.show_details_audio', componentElement)[0])
{
if (audioLinkElement = _('.media_controls_audio_link', componentElement)[0])
{
if (audioLinkElement.className.search('active') != -1)
{
window.eventsManager.addHandler(audioLinkElement, 'click', audioLinkClickHandler);
}
}
var audioPlayerElement = _('.audio_player_block', componentElement)[0];
if (audioPlayerElement)
{
audioPlayer = new AudioPlayerComponent(audioPlayerElement);
}
}
if (imageLinkElement = _('.show_details_image_link', componentElement)[0])
{
window.eventsManager.addHandler(imageLinkElement, 'click', imageLinkClickHandler);
var image = {src: imageLinkElement.href};
galleryComponent = new FullScreenGalleryComponent(new Array(image));
}
if (document.location.href.search('comments=1') != -1)
{
displayComments();
}
};
var moreInfoButtonClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
if (contentElement)
{
domHelper.addClass(contentElement, 'show_details_content_extended');
}
if (bottomElement)
{
bottomElement.style.display = 'block';
}
};
var commentsLinkClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
displayComments();
};
var displayComments = function()
{
if (contentElement)
{
contentElement.style.display = 'none';
}
if (audioElement)
{
if (audioPlayer)
{
audioPlayer.stop();
}
audioElement.style.display = 'none';
}
if (videoElement)
{
videoElement.style.display = 'none';
}
if (commentsElement)
{
commentsElement.style.display = 'block';
}
};
var imageLinkClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
galleryComponent.displayImage();
};
var videoBackClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
displayContent();
};
var commentsBackClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
displayContent();
};
var displayContent = function()
{
if (contentElement)
{
contentElement.style.display = 'block';
}
if (audioElement)
{
if (audioPlayer)
{
audioPlayer.stop();
}
audioElement.style.display = 'none';
}
if (videoElement)
{
videoElement.style.display = 'none';
}
if (commentsElement)
{
commentsElement.style.display = 'none';
}
};
var audioLinkClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
if (contentElement)
{
contentElement.style.display = 'block';
}
if (audioElement)
{
audioElement.style.display = 'block';
if (audioPlayer)
{
audioPlayer.play();
}
}
if (videoElement)
{
videoElement.style.display = 'none';
}
if (commentsElement)
{
commentsElement.style.display = 'none';
}
};
var videoLinkClickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
if (contentElement)
{
contentElement.style.display = 'none';
}
if (audioElement)
{
if (audioPlayer)
{
audioPlayer.stop();
}
audioElement.style.display = 'none';
}
if (videoElement)
{
videoElement.style.display = 'block';
var hasReqestedVersion = DetectFlashVer(10, 0, 0);
if (hasReqestedVersion)
{
videoCompatibleElement.style.display = 'block';
videoIncompatibleElement.style.display = 'none';
}
else
{
videoCompatibleElement.style.display = 'none';
videoIncompatibleElement.style.display = 'block';
}
}
if (commentsElement)
{
commentsElement.style.display = 'none';
}
};
var self = this;
var contentLinkElement = false;
var commentsLinkElement = false;
var audioLinkElement = false;
var videoLinkElement = false;
var imageLinkElement = false;
var commentsBackButtons = false;
var videoBackButtons = false;
var videoIncompatibleElement = false;
var videoCompatibleElement = false;
var contentElement = false;
var commentsElement = false;
var audioElement = false;
var audioPlayer = false;
var videoElement = false;
var contentCenterElement = false;
var controlsElement = false;
var moreInfoButton = false;
var bottomElement = false;
var galleryComponent = false;
init();
}
window.timerComponent = function(componentElement)
{
this.init = function()
{
self.componentElement = componentElement;
valueElement = _('.timer_value', componentElement)[0];
self.limit = window.basketTimeRemaining;
self.resetTimer();
self.updateStatus();
if (self.limit > 0)
{
window.setInterval(self.updateStatus, self.updateInterval);
}
}
this.resetTimer = function()
{
self.startDate = new Date();
}
this.updateStatus = function()
{
var currentDate = new Date();
remainingSeconds = self.limit - Math.floor((currentDate.getTime() - self.startDate.getTime())/1000);
var minutesText = Math.floor(remainingSeconds/60);
var secondsText = self.formatNumber(remainingSeconds - minutesText*60, 2);
var text = minutesText+':'+secondsText;
if (remainingSeconds >= 0)
{
if (text != self.currentText)
{
self.currentText = text;
self.setTextContent(valueElement, text);
}
}
}
this.setTextContent = function(element, text)
{
while(element.firstChild)
{
element.removeChild(element.firstChild);
}
var textNode = document.createTextNode(text);
element.appendChild(textNode);
}
this.formatNumber = function(number, decimals)
{
number = number.toString();
if (number.length < decimals)
{
for (a=decimals-number.length; a>0; a--)
{
number = '0'+number;
}
}
return number;
}
this.getRemainingTime = function()
{
return remainingSeconds;
}
this.performRefresh = function()
{
document.location.href = window.baseURL;
}
this.display = function()
{
self.componentElement.style.display = 'block';
}
this.hide = function()
{
self.componentElement.style.display = 'none';
}
var self = this;
var remainingSeconds = false;
var valueElement = false;
this.errorPopup = false;
this.currentText = false;
this.startDate = false;
this.limit = 0;
this.updateInterval = 300;
this.componentElement = new Array();
this.init();
}
window.FullMapComponent = function(componentElement)
{
var init = function()
{
if (iframeElement = _('iframe', componentElement)[0])
{
clickLayer = new FullMapClickLayer(iframeElement, self);
componentElement.appendChild(clickLayer.componentElement);
}
};
this.displayBigLayer = function()
{
if (!bigLayer)
{
bigLayer = new FullMapBigLayer(iframeElement);
}
bigLayer.startDisplay();
};
var self = this;
var iframeElement = false;
var bigLayer = false;
var clickLayer = false;
init();
};
window.FullMapClickLayer = function(iframeElement, parentObject)
{
var init = function()
{
componentElement = document.createElement('div');
window.opacityHandler.setOpacity(componentElement, 0);
componentElement.className = 'full_map_click_layer';
if (iframeElement.src.match(/1188\.ee/))
{
componentElement.className = 'full_map_click_layer full_map_click_layer_1188';
}
window.eventsManager.addHandler(componentElement, 'click', clickHandler);
self.componentElement = componentElement;
};
var clickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
window.eventsManager.cancelBubbling(event);
parentObject.displayBigLayer();
};
var self = this;
var componentElement = false;
this.componentElement = false;
init();
};
window.FullMapBigLayer = function(iframeElement)
{
var init = function()
{
if (navigator.appVersion.match(/MSIE ([\d.]+);/))
{
var version = navigator.appVersion.match(/MSIE ([\d.]+);/)[1];
if (version == 6)
{
ie6Detected = true;
}
}
componentElement = document.createElement('div');
componentElement.className = 'full_map_big_layer';
componentElement.style.display = 'none';
closeElement = document.createElement('div');
closeElement.className = 'full_map_big_layer_close';
componentElement.appendChild(closeElement);
window.eventsManager.addHandler(closeElement, 'click', self.startHide);
linkElement = document.createElement('a');
linkElement.href = iframeElement.src.replace(/(&s=[^&]*)/, '').replace('output=embed', 'source=embed');
linkElement.className = 'full_map_big_layer_link';
domHelper.setTextContent(linkElement, window.translations.piletilevi['fullscreen_map_link']);
componentElement.appendChild(linkElement);
window.eventsManager.addHandler(linkElement, 'click', self.linkClickHandler);
document.body.appendChild(componentElement);
};
this.startDisplay = function()
{
DarkLayerComponent.showLayer(self.startHide, displayComponent);
};
this.linkClickHandler = function(event)
{
eventsManager.preventDefaultAction(event);
window.open(linkElement.href);
};
this.startHide = function()
{
componentElement.style.display = 'none';
DarkLayerComponent.hideLayer();
};
var displayComponent = function()
{
componentElement.style.display = 'none';
var viewPortWidth = 0;
var viewPortHeight = 0;
if (window.innerHeight)
{
viewPortWidth = window.innerWidth;
viewPortHeight = window.innerHeight;
}
else
{
viewPortWidth = document.documentElement.offsetWidth;
viewPortHeight = document.documentElement.offsetHeight;
}
var componentWidth = viewPortWidth * 0.8;
var componentHeight = viewPortHeight * 0.8;
var componentLeft = (viewPortWidth - componentWidth)/2;
var componentTop = (viewPortHeight - componentHeight)/2;
if (ie6Detected)
{
var viewPortLeft = 0;
var viewPortTop = 0;
if (window.pageYOffset)
{
viewPortLeft = window.pageXOffset;
viewPortTop = window.pageYOffset;
}
else
{
viewPortLeft = document.documentElement.scrollLeft;
viewPortTop = document.documentElement.scrollTop;
}
componentLeft = viewPortLeft + (viewPortWidth - componentWidth) / 2;
componentTop = viewPortTop + (viewPortHeight - componentHeight) / 2;
}
componentElement.style.width = componentWidth+'px';
componentElement.style.height = componentHeight+'px';
componentElement.style.left = componentLeft+'px';
componentElement.style.top = componentTop+'px';
componentElement.style.display = 'block';
if (!biggerIframe)
{
biggerIframe = iframeElement.cloneNode(true);
biggerIframe.className = 'full_map_big_iframe';
biggerIframe.src = biggerIframe.src.replace(/width=([0-9])*/i, 'width='+componentWidth);
biggerIframe.src = biggerIframe.src.replace(/height=([0-9])*/i, 'height='+componentHeight);
componentElement.appendChild(biggerIframe);
}
};
var self = this;
var componentElement = false;
var closeElement = false;
var linkElement = false;
var biggerIframe = false;
var ie6Detected = false;
init();
};
window.AudioPlayerComponent = function(componentElement)
{
var init = function()
{
id = 'audio_object_'+componentElement.className.split('audio_player_id_')[1];
if (playButton = _('.audio_player_play', componentElement)[0])
{
eventsManager.addHandler(playButton, 'click', playClickHandler);
}
if (pauseButton = _('.audio_player_pause', componentElement)[0])
{
eventsManager.addHandler(pauseButton, 'click', pauseClickHandler);
}
if (stopButton = _('.audio_player_stop', componentElement)[0])
{
eventsManager.addHandler(stopButton, 'click', stopClickHandler);
}
};
var playClickHandler = function(event)
{
eventsManager.preventDefaultAction(event);
self.play();
};
this.play = function()
{
if (typeof niftyplayer != undefined)
{
if (typeof niftyplayer(id) == 'undefined')
{
window.setTimeout(self.play, 300);
}
else
{
niftyplayer(id).play();
playButton.style.display = 'none';
pauseButton.style.display = 'block';
}
}
};
var pauseClickHandler = function(event)
{
eventsManager.preventDefaultAction(event);
self.pause();
};
this.pause = function()
{
if (typeof niftyplayer != undefined)
{
if (typeof niftyplayer(id) != 'undefined')
{
niftyplayer(id).pause();
}
}
playButton.style.display = 'block';
pauseButton.style.display = 'none';
};
var stopClickHandler = function(event)
{
eventsManager.preventDefaultAction(event);
self.stop();
};
this.stop = function()
{
if (typeof niftyplayer != undefined)
{
if (typeof niftyplayer(id) != 'undefined')
{
niftyplayer(id).stop();
}
}
playButton.style.display = 'block';
pauseButton.style.display = 'none';
};
var self = this;
var id = this;
var playButton = false;
var stopButton = false;
var pauseButton = false;
init();
};
window.BasketStatusComponent = function(componentElement)
{
var init = function()
{
window.eventsManager.addHandler(componentElement, 'click', clickHandler);
loginElement = _('.basketstatus_login', componentElement)[0];
titleElement = _('.basketstatus_title', componentElement)[0];
emptyElement = _('.basketstatus_empty', componentElement)[0];
if (ticketsElement = _('.basketstatus_tickets', componentElement)[0])
{
ticketsAmountElement = _('.basketstatus_tickets_value', ticketsElement)[0];
}
totalPriceElement = _('.basketstatus_price', componentElement)[0];
totalPriceValueElement = _('.basketstatus_price_value', componentElement)[0];
var basketTimerElement = false;
if (basketTimerElement = _('.status_timer', componentElement)[0])
{
basketTimer = new timerComponent(basketTimerElement);
}
updateStatus();
}
var updateStatus = function()
{
if (componentElement)
{
var ticketsAmount = window.basketTicketsAmount;
var totalPrice = window.basketTicketsPrice;
var currency = window.basketCurrency;
var sessKey = window.basketKey;
var timeRemaining = basketTimer.getRemainingTime();
if (sessKey == '' || timeRemaining <= 0)
{
loginElement.style.display = 'block';
totalPriceElement.style.display = 'none';
ticketsElement.style.display = 'none';
titleElement.style.display = 'none';
emptyElement.style.display = 'none';
componentElement.className = 'basketstatus_block basketstatus_block_login';
basketTimer.hide();
}
else
{
setTextContent(totalPriceValueElement, totalPrice +' '+currency);
setTextContent(ticketsAmountElement, ticketsAmount);
if (ticketsAmount > 0)
{
loginElement.style.display = 'none';
totalPriceElement.style.display = 'block';
ticketsElement.style.display = 'block';
titleElement.style.display = 'none';
emptyElement.style.display = 'none';
componentElement.className = 'basketstatus_block';
}
else
{
loginElement.style.display = 'none';
totalPriceElement.style.display = 'none';
ticketsElement.style.display = 'none';
titleElement.style.display = 'block';
emptyElement.style.display = 'block';
componentElement.className = 'basketstatus_block basketstatus_block_empty';
}
basketTimer.display();
}
componentElement.style.display = 'block';
}
}
var clickHandler = function(event)
{
window.eventsManager.preventDefaultAction(event);
var ticketsAmount = window.basketTicketsAmount;
var totalPrice = window.basketTicketsPrice;
var currency = window.basketCurrency;
var sessKey = window.basketKey;
var timeRemaining = basketTimer.getRemainingTime();
if (sessKey == '' || timeRemaining <= 0)
{
document.location.href=window.shopRegistrationURL;
}
else
{
document.location.href=window.shopURL;
}
}
var setTextContent = function(element, text)
{
while(element.firstChild)
{
element.removeChild(element.firstChild);
}
var textNode = document.createTextNode(text);
element.appendChild(textNode);
}
var self = this;
var basketTimer = false;
var loginElement = false;
var titleElement = false;
var emptyElement = false;
var ticketsElement = false;
var ticketsAmountElement = false;
var totalPriceElement = false;
var totalPriceValueElement = false;
init();
}
window.CalendarSelectorComponent = function(inputElement, parameters)
{
this.inputElement = null;
this.calendarElement = null;
this.todayDate = null;
this.todayMonth = null;
this.todayYear = null;
this.selectedDate = null;
this.selectedMonth = null;
this.selectedYear = null;
this.position = null;
this.size = null;
this.showCloseButton = null;
this.disableInput = null;
this.changeCallBack = null;
this.monthPages = new Array();
this.links = new Array();
var self = this;
this.init = function()
{
self.position = 'input';
self.size = 'auto';
self.showCloseButton = false;
if (typeof parameters != 'undefined')
{
importParameters(parameters);
}
this.inputElement = inputElement;
if (this.inputElement.value)
{
window.eventsManager.addHandler(inputElement, 'focus', this.displayCalendarElement);
window.eventsManager.addHandler(inputElement, 'click', this.inputElementClick);
window.eventsManager.addHandler(inputElement, 'change', this.hideCalendarElement);
}
else
{
window.eventsManager.addHandler(inputElement, 'click', this.displayCalendarElement);
}
window.eventsManager.addHandler(window, 'resize', this.adjustCalendarElement);
};
var importParameters = function(parameters)
{
if (typeof parameters.position != 'undefined' && parameters.position)
{
self.position = parameters.position;
}
if (typeof parameters.size != 'undefined' && parameters.size)
{
self.size = parseFloat(parameters.size, 10);
}
if (typeof parameters.showCloseButton != 'undefined' && parameters.showCloseButton)
{
self.showCloseButton = true;
}
if (typeof parameters.disableInput != 'undefined' && parameters.disableInput)
{
self.disableInput = true;
}
if (typeof parameters.changeCallBack != 'undefined')
{
self.changeCallBack = parameters.changeCallBack;
}
};
this.calendarElementClick = function(event)
{
window.eventsManager.cancelBubbling(event);
};
this.inputElementClick = function(event)
{
window.eventsManager.cancelBubbling(event);
};
this.displayCalendarElement = function(event)
{
self.state = 'opened';
var calendarElement = self.getCalendarElement();
calendarElement.style.visibility = 'hidden';
calendarElement.style.display = 'block';
if (self.showCloseButton)
{
self.closeButton.style.display = 'block';
}
else
{
self.closeButton.style.display = 'none';
}
self.adjustCalendarElement();
calendarElement.style.visibility = 'visible';
if (self.disableInput)
{
window.eventsManager.preventDefaultAction(event);
self.inputElement.blur();
return false;
}
};
this.adjustCalendarElement = function()
{
if (self.state == 'opened')
{
var calendarElement = self.getCalendarElement();
if (self.position == 'input')
{
var coordinates = window.domHelper.getElementPositions(self.inputElement);
calendarElement.style.position = 'absolute';
calendarElement.style.left = coordinates.x + 'px';
calendarElement.style.top = (coordinates.y + self.inputElement.offsetHeight) + 'px';
}
else if (self.position == 'center')
{
var viewPortWidth = 0;
var viewPortHeight = 0;
if (window.innerHeight)
{
viewPortWidth = window.innerWidth;
viewPortHeight = window.innerHeight;
}
else
{
viewPortWidth = document.documentElement.offsetWidth;
viewPortHeight = document.documentElement.offsetHeight;
}
var componentWidth = calendarElement.offsetWidth;
var componentHeight = calendarElement.offsetHeight;
if (self.size != 'auto')
{
componentWidth = viewPortWidth * self.size;
}
var componentLeft = (viewPortWidth - componentWidth) / 2;
var componentTop = (viewPortHeight - componentHeight) / 2;
calendarElement.style.width = componentWidth + 'px';
calendarElement.style.position = 'fixed';
calendarElement.style.left = componentLeft + 'px';
calendarElement.style.top = componentTop + 'px';
}
};
};
this.hideCalendarElement = function()
{
self.state = 'closed';
var calendarElement = self.getCalendarElement();
self.calendarElement.style.display = 'none';
};
this.getCalendarElement = function()
{
if (!this.calendarElement)
{
this.calendarElement = document.createElement('div');
this.calendarElement.className = 'calendar_selector';
document.body.appendChild(this.calendarElement);
window.eventsManager.addHandler(this.calendarElement, 'click', this.calendarElementClick);
var dateObject = new Date();
this.todayDate = dateObject.getDate();
this.todayMonth = dateObject.getMonth();
this.todayYear = dateObject.getFullYear();
this.prepareSelectedValues();
this.prepareDOMStructure();
this.renderSelectedMonth();
}
return this.calendarElement;
};
this.prepareSelectedValues = function()
{
if (this.inputElement.value)
{
var textValue = this.inputElement.value;
}
else
{
var textValue = this.inputElement.innerHTML;
}
if (textValue.match(/^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.](19|20)\d\d$/))
{
var dateParts = textValue.split('.');
this.selectedDate = parseInt(dateParts[0], 10);
this.selectedMonth = parseInt(dateParts[1], 10) - 1;
this.selectedYear = parseInt(dateParts[2], 10);
}
else
{
this.selectedDate = this.todayDate;
this.selectedMonth = this.todayMonth;
this.selectedYear = this.todayYear;
}
};
this.showNextMonth = function()
{
var nextMonthFirstDay = new Date(this.selectedYear, this.selectedMonth + 1, 1);
this.selectedDate = nextMonthFirstDay.getDate();
this.selectedMonth = nextMonthFirstDay.getMonth();
this.selectedYear = nextMonthFirstDay.getFullYear();
this.renderSelectedMonth();
};
this.showPreviousMonth = function()
{
var previousMonthLastDay = new Date(this.selectedYear, this.selectedMonth, 0);
this.selectedDate = previousMonthLastDay.getDate();
this.selectedMonth = previousMonthLastDay.getMonth();
this.selectedYear = previousMonthLastDay.getFullYear();
this.renderSelectedMonth();
};
this.prepareDOMStructure = function()
{
this.descriptionElement = document.createElement('div');
this.descriptionElement.className = 'calendar_selector_description';
if (window.translations.piletilevi.calendar_description)
{
this.descriptionElement.innerHTML = window.translations.piletilevi.calendar_description;
}
this.calendarElement.appendChild(this.descriptionElement);
var headerElement = document.createElement('div');
headerElement.className = 'calendar_selector_header';
this.headerElement = headerElement;
this.calendarElement.appendChild(headerElement);
var bodyElement = document.createElement('div');
bodyElement.className = 'calendar_selector_body';
this.bodyElement = bodyElement;
this.calendarElement.appendChild(bodyElement);
this.buttonNextMonth = new CalendarSelector_nextMonth(this);
this.buttonPreviousMonth = new CalendarSelector_previousMonth(this);
this.currentLocation = new CalendarSelector_currentLocation(this);
this.closeButton = document.createElement('div');
this.closeButton.className = 'calendar_selector_close';
window.eventsManager.addHandler(this.closeButton, 'click', this.hideCalendarElement);
if (window.translations.piletilevi.calendar_close)
{
this.closeButton.innerHTML = window.translations.piletilevi.calendar_close;
}
this.calendarElement.appendChild(this.closeButton);
};
this.selectDay = function(year, month, day)
{
this.selectedDate = day;
this.selectedMonth = month;
this.selectedYear = year;
day = this.formatNumber(day, 2);
month = this.formatNumber(month + 1, 2);
var dateText = day + '.' + month + '.' + year;
if (this.inputElement.value)
{
this.inputElement.value = dateText;
window.eventsManager.fireEvent(this.inputElement, 'change');
}
else
{
this.inputElement.innerHTML = dateText;
}
this.hideCalendarElement();
this.renderSelectedMonth();
if (self.changeCallBack)
{
self.changeCallBack();
}
};
this.formatNumber = function(number, decimals)
{
number = number.toString();
if (number.length < decimals)
{
for (a = decimals - number.length; a > 0; a--)
{
number = '0' + number;
}
}
return number;
};
this.renderSelectedMonth = function()
{
var bodyElement = this.bodyElement;
while (bodyElement.firstChild)
{
bodyElement.removeChild(bodyElement.firstChild);
}
if (!this.monthPages[this.selectedYear])
{
this.monthPages[this.selectedYear] = new Array();
}
if (!this.monthPages[this.selectedYear][this.selectedMonth])
{
var monthObject = new CalendarSelectorMonth(this.selectedMonth, this.selectedYear);
this.monthPages[this.selectedYear][this.selectedMonth] = monthObject;
}
else
{
var monthObject = this.monthPages[this.selectedYear][this.selectedMonth];
}
var weekDaysNames = this.getWeekDaysNames();
var tableElement = document.createElement('table');
var tableBodyElement = document.createElement('tbody');
tableElement.appendChild(tableBodyElement);
var tableRow = document.createElement('tr');
for (var cell = 0; cell < 7; cell++)
{
var tableCell = document.createElement('th');
var weekDayName = weekDaysNames[cell];
if (tableCell.textContent != null)
{
tableCell.textContent = weekDayName;
}
else
{
tableCell.innerText = weekDayName;
}
tableRow.appendChild(tableCell);
}
tableBodyElement.appendChild(tableRow);
for (var row = 0; row < monthObject.daysGrid.length; row++)
{
var tableRow = document.createElement('tr');
for (var cell = 0; cell < monthObject.daysGrid[row].length; cell++)
{
var tableCell = document.createElement('td');
var month = monthObject.daysGrid[row][cell].getMonth();
var day = monthObject.daysGrid[row][cell].getDate();
var weekDay = monthObject.daysGrid[row][cell].getDay();
var year = monthObject.daysGrid[row][cell].getFullYear();
var className = '';
if (month == this.selectedMonth)
{
className = className + ' calendar_selector_activemonth';
if (weekDay == 0 || weekDay == 6)
{
className = className + ' calendar_selector_weekend';
}
if (day == this.todayDate && month == this.todayMonth && year == this.todayYear)
{
className = className + ' calendar_selector_today';
}
if (day == this.selectedDate && month == this.selectedMonth && year == this.selectedYear)
{
className = className + ' calendar_selector_selected';
}
}
var dayObject = new CalendarSelectorDay(this, className, year, month, day);
tableRow.appendChild(dayObject.domElement);
}
tableBodyElement.appendChild(tableRow);
}
bodyElement.appendChild(tableElement);
var monthsNames = this.getMonthsNames();
this.currentLocation.setLocation(monthsNames[this.selectedMonth], this.selectedYear);
};
this.getWeekDaysNames = function()
{
if (window.translations && window.translations.weekdays_short)
{
var weekDaysNames = window.translations.weekdays_short;
}
else
{
var weekDaysNames = new Array();
weekDaysNames[0] = 'E';
weekDaysNames[1] = 'T';
weekDaysNames[2] = 'K';
weekDaysNames[3] = 'N';
weekDaysNames[4] = 'R';
weekDaysNames[5] = 'L';
weekDaysNames[6] = 'P';
}
return weekDaysNames;
};
this.getMonthsNames = function()
{
if (window.translations && window.translations.months)
{
var monthsNames = window.translations.months;
}
else
{
var monthsNames = new Array();
monthsNames[0] = 'Jaanuar';
monthsNames[1] = 'Veebruar';
monthsNames[2] = 'Märts';
monthsNames[2] = 'Märts';
monthsNames[3] = 'Aprill';
monthsNames[4] = 'Mai';
monthsNames[5] = 'Juuni';
monthsNames[6] = 'Juuli';
monthsNames[7] = 'August';
monthsNames[8] = 'September';
monthsNames[9] = 'Oktoober';
monthsNames[10] = 'November';
monthsNames[11] = 'Detsember';
}
return monthsNames;
};
this.init();
};
function CalendarSelectorDay(calendarObject, className, year, month, day)
{
this.init = function()
{
this.calendarObject = calendarObject;
this.className = className;
this.month = month;
this.year = year;
this.day = day;
this.createDomElement();
};
this.createDomElement = function()
{
var domElement = document.createElement('td');
this.domElement = domElement;
this.domElement.className = this.className;
var content = document.createTextNode(this.day);
domElement.appendChild(content);
window.eventsManager.addHandler(domElement, 'click', this.clickHandler);
window.eventsManager.addHandler(domElement, 'mouseover', this.mouseOverHandler);
window.eventsManager.addHandler(domElement, 'mouseout', this.mouseOutHandler);
};
this.mouseOverHandler = function()
{
self.domElement.className = self.className + ' calendar_selector_hovered';
};
this.mouseOutHandler = function()
{
self.domElement.className = self.className;
};
this.clickHandler = function(event)
{
eventsManager.cancelBubbling(event);
var year = self.year;
var month = self.month;
var day = self.day;
self.calendarObject.selectDay(year, month, day);
};
this.domElement = false;
this.day = false;
this.month = false;
this.year = false;
var self = this;
this.init();
}
function CalendarSelectorMonth(month, year)
{
this.init = function()
{
this.month = month;
this.year = year;
var monthFirstDay = new Date(year, month, 1);
var weekDay = monthFirstDay.getDay() - 1;
if (weekDay < 0)
{
weekDay = 6;
}
var tableFirstDay = new Date(year, month, 1 - weekDay);
var monthLastDay = new Date(year, month + 1, 0);
var weekDay = monthLastDay.getDay() - 1;
if (weekDay < 0)
{
weekDay = 6;
}
var tableLastDay = new Date(year, month + 1, 6 - weekDay);
this.monthFirstDay = monthFirstDay;
this.monthLastDay = monthLastDay;
this.tableFirstDay = tableFirstDay;
this.tableLastDay = tableLastDay;
this.calculateDaysData();
};
this.calculateDaysData = function()
{
var todayDate = new Date();
todayDate.setTime(this.tableFirstDay.getTime());
var currentRow = 0;
var currentWeekDay = 0;
while (todayDate.getTime() <= this.tableLastDay.getTime())
{
if (!this.daysGrid[currentRow])
{
this.daysGrid[currentRow] = new Array();
}
this.daysGrid[currentRow][currentWeekDay] = new Date(todayDate.getTime());
todayDate.setDate(todayDate.getDate() + 1);
currentWeekDay++;
if (currentWeekDay == 7)
{
currentWeekDay = 0;
currentRow ++;
}
}
};
this.daysGrid = new Array();
var self = this;
this.init();
}
function CalendarSelector_nextMonth(calendarObject)
{
this.init = function()
{
this.calendarObject = calendarObject;
var buttonElement = document.createElement('a');
buttonElement.className = 'calendar_selector_nextmonth';
calendarObject.headerElement.appendChild(buttonElement);
buttonElement.href = '';
var buttonText = '';
if (buttonElement.textContent != null)
{
buttonElement.textContent = buttonText;
}
else
{
buttonElement.innerText = buttonText;
}
window.eventsManager.addHandler(buttonElement, 'click', this.click);
};
this.click = function(event)
{
window.eventsManager.preventDefaultAction(event);
self.calendarObject.showNextMonth();
};
var self = this;
this.init();
}
function CalendarSelector_previousMonth(calendarObject)
{
this.init = function()
{
this.calendarObject = calendarObject;
var buttonElement = document.createElement('a');
buttonElement.className = 'calendar_selector_previousmonth';
calendarObject.headerElement.appendChild(buttonElement);
buttonElement.href = '';
var buttonText = '';
if (buttonElement.textContent != null)
{
buttonElement.textContent = buttonText;
}
else
{
buttonElement.innerText = buttonText;
}
window.eventsManager.addHandler(buttonElement, 'click', this.click);
};
this.click = function(event)
{
window.eventsManager.preventDefaultAction(event);
self.calendarObject.showPreviousMonth();
};
var self = this;
this.init();
}
function CalendarSelector_currentLocation(calendarObject)
{
this.init = function()
{
this.calendarObject = calendarObject;
var locationElement = document.createElement('div');
locationElement.className = 'calendar_selector_location';
calendarObject.headerElement.appendChild(locationElement);
this.locationElement = locationElement;
};
this.setLocation = function(month, year)
{
var locationText = month + ' ' + year;
if (this.locationElement.textContent != null)
{
this.locationElement.textContent = locationText;
}
else
{
this.locationElement.innerText = locationText;
}
};
var self = this;
this.init();
}
window.FullScreenGalleryComponent = function(imagesInfoList)
{
var init = function()
{
if (navigator.appVersion.match(/MSIE ([\d.]+);/))
{
var version = navigator.appVersion.match(/MSIE ([\d.]+);/)[1];
if (version == 6)
{
ie6Detected = true;
}
}
componentElement = document.createElement('div');
componentElement.className = 'fullscreen_gallery_block';
componentElement.style.display = 'none';
eventsManager.addHandler(componentElement, 'click', self.closeGallery)
imagesElement = document.createElement('div');
componentElement.appendChild(imagesElement);
closeButton = document.createElement('div');
closeButton.className = 'fullscreen_gallery_close';
componentElement.appendChild(closeButton);
for (var i=0; i<imagesInfoList.length; i++)
{
if (typeof imagesInfoList[i].src !== 'undefined')
{
var imageInfo = {};
imageInfo.src = imagesInfoList[i].src;
if (typeof imagesInfoList[i].id !== 'undefined')
{
imageInfo.id = imagesInfoList[i].id;
}
else
{
imageInfo.id = i;
}
imageInfo.element = document.createElement('img');
imageInfo.element.style.display = 'none';
imageInfo.element.src = imageInfo.src;
imageInfo.element.className = 'fullscreen_gallery_image';
imagesList.push(imageInfo);
imagesIndex[imageInfo.id] = imageInfo;
imagesElement.appendChild(imageInfo.element);
}
}
if (imagesList.length)
{
document.body.appendChild(componentElement);
}
}
this.displayImage = function(imageId)
{
if (imagesList.length > 0)
{
if (typeof imageId == 'undefined' || typeof imagesIndex[imageId] == 'undefined')
{
var imageId = imagesList[0].id;
}
}
currentImageId = imageId;
var imageInfo = imagesIndex[currentImageId];
imageInfo.element.style.display = 'block';
opacityHandler.setOpacity(imageInfo.element, 0);
componentElement.style.display = 'block';
DarkLayerComponent.showLayer(self.closeGallery, checkPreloadImage);
}
var checkPreloadImage = function()
{
var imageInfo = imagesIndex[currentImageId];
if (imageInfo.element.complete)
{
fadeInCurrentImage();
}
else
{
window.setTimeout(checkPreloadImage, preloadDelay);
}
}
var fadeInCurrentImage = function()
{
var imageInfo = imagesIndex[currentImageId];
var imageWidth = imageInfo.element.offsetWidth;
var imageHeight = imageInfo.element.offsetHeight;
var aspectRatio = imageWidth/imageHeight;
if (window.innerHeight)
{
var viewPortWidth = window.innerWidth;
var viewPortHeight = window.innerHeight;
}
else
{
var viewPortWidth = document.documentElement.offsetWidth;
var viewPortHeight = document.documentElement.offsetHeight;
}
var resizedWidth = imageWidth;
var resizedHeight = imageHeight;
if (resizedWidth > viewPortWidth * sizeCoefficient)
{
resizedWidth = viewPortWidth * sizeCoefficient;
resizedHeight = resizedWidth/aspectRatio;
}
if (resizedHeight > viewPortHeight * sizeCoefficient)
{
resizedHeight = viewPortHeight * sizeCoefficient;
resizedWidth = resizedHeight*aspectRatio;
}
if (!ie6Detected)
{
var positionLeft = (viewPortWidth - resizedWidth) / 2;
var positionTop = (viewPortHeight - resizedHeight) / 2;
}
else
{
if (window.pageYOffset)
{
var viewPortLeft = window.pageXOffset;
var viewPortTop = window.pageYOffset;
}
else
{
var viewPortLeft = document.documentElement.scrollLeft;
var viewPortTop = document.documentElement.scrollTop;
}
var positionLeft = viewPortLeft + (viewPortWidth - resizedWidth) / 2;
var positionTop = viewPortTop + (viewPortHeight - resizedHeight) / 2;
}
imageInfo.element.style.width = resizedWidth + 'px';
imageInfo.element.style.height = resizedHeight + 'px';
imageInfo.element.style.left = positionLeft + 'px';
imageInfo.element.style.top = positionTop + 'px';
closeButton.style.left = (positionLeft + resizedWidth - closeButton.offsetWidth/2)+ 'px';
closeButton.style.top = (positionTop - closeButton.offsetHeight/2) + 'px';
var parameters = {end:1, step:0.1};
effectsManager.startEffect('opacity', imageInfo.element, parameters);
}
this.closeGallery = function()
{
componentElement.style.display = 'none';
var imageInfo = imagesIndex[currentImageId];
imageInfo.element.style.display = 'none';
DarkLayerComponent.hideLayer();
}
var self = this;
var preloadDelay = 100;
var sizeCoefficient = 0.9;
var currentImageId = false;
var imagesList = new Array();
var imagesIndex = {};
var componentElement = false;
var closeButton = false;
var imagesElement = false;
var ie6Detected = false;
init();
}
window.DarkLayerComponent = new function()
{
this.showLayer = function(onclickFunction, callback, allowClose)
{
if (this.domElement && !displayed)
{
displayed = true;
opacityHandler.setOpacity(this.domElement, 0);
this.domElement.style.display = 'block';
var parameters = {end:this.fullOpacity, step:this.step};
if (callback)
{
effectsManager.startEffect('opacity', this.domElement, parameters, callback);
}
else
{
effectsManager.startEffect('opacity', this.domElement, parameters);
}
if (allowClose != null)
{
this.allowClose = allowClose;
}
if (onclickFunction)
{
window.eventsManager.addHandler(this.domElement, "click", onclickFunction);
}
else
{
window.eventsManager.addHandler(this.domElement, "click", this.layerClickHandler);
}
}
};
this.hideLayer = function()
{
displayed = false;
if (self.allowClose)
{
var parameters = {end:0, step: self.step};
effectsManager.startEffect('opacity', self.domElement, parameters, self.finishHiding);
}
};
this.layerClickHandler = function()
{
self.hideLayer();
};
this.forceHideLayer = function(callback)
{
self.closeCallBack = callback;
self.allowClose = true;
self.hideLayer();
};
this.finishHiding = function()
{
self.domElement.style.display = 'none';
if (self.closeCallBack)
{
var callBack = self.closeCallBack;
self.closeCallBack = false;
callBack();
}
};
this.init = function()
{
if (self.domElement == null)
{
var domElement = document.createElement('div');
domElement.className = 'dark_layer';
domElement.style.backgroundColor = self.backgroundColor;
domElement.style.position = 'fixed';
domElement.style.top = '0';
domElement.style.bottom = '0';
domElement.style.left = '0';
domElement.style.right = '0';
domElement.style.zIndex = '90';
domElement.style.display = 'none';
self.domElement = domElement;
document.body.appendChild(domElement);
}
};
var self = this;
var displayed = false;
this.closeCallBack = false;
this.domElement = null;
this.fullOpacity = 0.8;
this.step = 0.03;
this.allowClose = true;
this.backgroundColor = '#000000';
window.controller.addListener("initDom", this.init);
}
window.detailedSearchFormComponent = new function(element, parameters)
{
var init = function()
{
if (componentElement = document.getElementById('fastsearch_block'))
{
if (formElement = document.getElementById('fastSearch'))
{
if (categorySelector = _('select.fastsearch_select_category', formElement)[0])
{
window.eventsManager.addHandler(categorySelector, 'change', categoryChangeHandler);
}
if (promoterSelector = _('select.fastsearch_select_promoter', formElement)[0])
{
window.eventsManager.addHandler(promoterSelector, 'change', promoterChangeHandler);
}
}
}
}
var categoryChangeHandler = function()
{
sendRequest('category');
}
var promoterChangeHandler = function()
{
sendRequest('promoter');
}
var sendRequest = function(type)
{
var ajaxRequestURL = '/xml.php';
var categoryID = categorySelector.value;
var promoterID = promoterSelector.value;
makeRequest(ajaxRequestURL, processRequestResults, 'requestType=searchform&categoryID='+categoryID+'&promoterID='+promoterID+'&searched='+type, true);
}
var processRequestResults = function(responseXML)
{
if (responseXML)
{
var categoriesInfo = new Array();
var promotersInfo = new Array();
if (responseXML.documentElement)
{
if (responseXML.documentElement.childNodes)
{
for (var i = 0; i < responseXML.documentElement.childNodes.length; i++)
{
var resultItemElement = responseXML.documentElement.childNodes[i];
if (resultItemElement.tagName == 'promoters')
{
for (var j = 0; j < resultItemElement.childNodes.length; j++)
{
var promoterXML = resultItemElement.childNodes[j];
if (promoterXML.tagName == 'promoter')
{
var info = {};
info.text = getTextContent(promoterXML);
info.value = promoterXML.getAttribute("id");
info.selected = promoterXML.getAttribute("selected");
promotersInfo.push(info);
}
}
}
if (resultItemElement.tagName == 'categories')
{
for (var j = 0; j < resultItemElement.childNodes.length; j++)
{
var categoryXML = resultItemElement.childNodes[j];
if (categoryXML.tagName == 'category')
{
var info = {};
info.text = getTextContent(categoryXML);
info.value = categoryXML.getAttribute("id");
info.selected = categoryXML.getAttribute("selected");
categoriesInfo.push(info);
}
}
}
}
}
}
updateSelectors(categoriesInfo, promotersInfo);
}
}
var updateSelectors = function(categoriesInfo, promotersInfo)
{
while (categorySelector.firstChild)
{
categorySelector.removeChild(categorySelector.firstChild);
}
for (var i=0; i<categoriesInfo.length; i++)
{
var info = categoriesInfo[i];
var option = document.createElement('option');
option.value = info.value;
option.text = info.text;
option.selected = info.selected;
try
{
categorySelector.add(option, null);
}
catch(ex)
{
categorySelector.add(option);
}
}
window.dropDownManager.updateDropDown(categorySelector);
while (promoterSelector.firstChild)
{
promoterSelector.removeChild(promoterSelector.firstChild);
}
for (var i=0; i<promotersInfo.length; i++)
{
var info = promotersInfo[i];
var option = document.createElement('option');
option.value = info.value;
option.text = info.text;
option.selected = info.selected;
try
{
promoterSelector.add(option, null);
}
catch(ex)
{
promoterSelector.add(option);
}
}
window.dropDownManager.updateDropDown(promoterSelector);
}
var getTextContent = function(node)
{
var content = '';
if (node.textContent)
{
content = node.textContent;
}
else if (node.text)
{
content = node.text;
}
return content;
}
var self = this;
var componentElement = false;
var formElement = false;
var categorySelector = false;
var promoterSelector = false;
window.eventsManager.addHandler(window, 'load', init);
};
window.concertsListControlsComponent = new function()
{
var init = function()
{
if (componentElement = _('.eventslist_controls')[0])
{
if (monthSelector = _('select.eventslist_controls_month', componentElement)[0])
{
window.eventsManager.addHandler(monthSelector, 'change', monthChangeHandler);
}
if (yearSelector = _('select.eventslist_controls_year', componentElement)[0])
{
window.eventsManager.addHandler(yearSelector, 'change', yearChangeHandler);
}
if (submitButton = _('.button', componentElement)[0])
{
window.eventsManager.addHandler(submitButton, 'click', buttonClickHandler);
}
}
}
var monthChangeHandler = function()
{
refreshPage();
}
var yearChangeHandler = function()
{
refreshPage();
}
var buttonClickHandler = function()
{
if (window.eventsMode == 'list')
{
window.eventsMode = 'calender';
}
else
{
window.eventsMode = 'list';
}
refreshPage();
}
var refreshPage = function()
{
var eventsMonth = monthSelector.value;
var eventsYear = yearSelector.value;
document.location.href = window.currentShowLink+'&month='+eventsMonth+'&year='+eventsYear+'&mode='+window.eventsMode;
}
var self = this;
var componentElement = false;
var monthSelector = false;
var yearSelector = false;
window.eventsManager.addHandler(window, 'load', init);
};
window.ScrollGalleryComponent = function(componentElement)
{
var init = function()
{
if (containerElement = _('.scrollgallery_images', componentElement)[0])
{
if (leftElement = _('.scrollgallery_left', componentElement)[0])
{
window.eventsManager.addHandler(leftElement, 'mouseover', leftMouseOverHandler);
window.eventsManager.addHandler(leftElement, 'mouseout', mouseOutHandler);
}
if (rightElement = _('.scrollgallery_right', componentElement)[0])
{
window.eventsManager.addHandler(rightElement, 'mouseover', rightMouseOverHandler);
window.eventsManager.addHandler(rightElement, 'mouseout', mouseOutHandler);
}
if (containerElement.offsetWidth <= containerElement.scrollWidth)
{
leftElement.style.display = 'block';
rightElement.style.display = 'block';
}
else
{
leftElement.style.display = 'none';
rightElement.style.display = 'none';
}
}
};
var leftMouseOverHandler = function(event)
{
moveLeft();
};
var moveLeft = function()
{
window.clearTimeout(animationTimeout);
containerElement.scrollLeft -= 2;
animationTimeout = window.setTimeout(moveLeft, 10);
};
var rightMouseOverHandler = function(event)
{
moveRight();
};
var moveRight = function()
{
window.clearTimeout(animationTimeout);
containerElement.scrollLeft += 2;
animationTimeout = window.setTimeout(moveRight, 10);
};
var mouseOutHandler = function(event)
{
window.clearTimeout(animationTimeout);
};
var self = this;
var leftElement = false;
var rightElement = false;
var containerElement = false;
var animationTimeout = false;
init();
};
try
{
document.execCommand("BackgroundImageCache", false, true);
}
catch(err)
{
}
dragObject = null;
var IE = document.all?true:false;
document.onmousemove = checkScroll;
document.onmouseup = stopScrollBlock;
scrollLineHeight = 20;
selectedFirstPageID = '';
function checkScroll(e)
{
if (dragObject)
{
var docPos = getPosition(dragObject);
mouseY = getMouseXY(e);
newPosition = dragObject.offsetTop + (mouseY - docPos[1]) - startOffset;
scrollAreaHeight = dragObject.parentNode.offsetHeight;
scrollScrollerHeight = dragObject.offsetHeight;
endfix = 0;
if (newPosition < 0)
{
newPosition = 0;
}
else if(newPosition > scrollAreaHeight-scrollScrollerHeight)
{
newPosition = scrollAreaHeight-scrollScrollerHeight;
endfix = 1;
}
dragObject.style.top = newPosition + 'px';
scrollLine = dragObject.parentNode.parentNode.parentNode;
for (index in scrollLine.childNodes)
{
if (scrollLine.childNodes[index].className=='scrollable')
{
scrollableContent = scrollLine.childNodes[index];
}
}
contentScrollPosition = scrollableContent.scrollHeight * (newPosition / scrollAreaHeight);
if (endfix == 1)
contentScrollPosition = scrollableContent.scrollHeight - scrollableContent.offsetHeight;
scrollableContent.scrollTop = contentScrollPosition;
}
}
function getMouseXY(e)
{
var mouseX = 0;
var mouseY = 0;
if (IE)
{
mouseX = event.clientX + document.getElementById('html_element').scrollLeft;
mouseY = event.clientY + document.getElementById('html_element').scrollTop;
}
else
{
mouseX = e.pageX;
mouseY = e.pageY;
}
if (mouseX < 0){mouseX = 0};
if (mouseY < 0){mouseY = 0};
return mouseY;
}
function getPosition(obj)
{
var curleft = curtop = 0;
if (obj.offsetParent)
{
curleft = obj.offsetLeft;
curtop = obj.offsetTop;
while (obj = obj.offsetParent)
{
curleft += obj.offsetLeft;
curtop += obj.offsetTop;
}
}
return [curleft,curtop];
}
function scrollBlock(e, scrollLine, scrollScroller)
{
docPos = getPosition(scrollScroller);
mouseY = getMouseXY(e);
startOffset = mouseY - docPos[1];
dragObject = scrollScroller;
}
function stopScrollBlock()
{
dragObject = null;
}
function scrollLineDown(scrollLine)
{
containerObj = scrollLine.parentNode;
for (index in containerObj.childNodes)
{
if (containerObj.childNodes[index].className=='scrollable')
{
scrollableContent = containerObj.childNodes[index];
}
}
for (index in scrollLine.childNodes)
{
if (scrollLine.childNodes[index].className=='scroll_area')
{
scrollArea = scrollLine.childNodes[index];
for (index2 in scrollArea.childNodes)
{
if (scrollArea.childNodes[index2].className=='scroll_scroller')
{
scrollScroller = scrollArea.childNodes[index2];
}
}
}
}
if ((scrollableContent.scrollTop + scrollLineHeight) >= scrollableContent.scrollHeight)
{
newContentScrollPosition = scrollableContent.scrollHeight - scrollLineHeight;
}
else
{
newContentScrollPosition = scrollableContent.scrollTop + scrollLineHeight;
}
changeScrollPosition(scrollableContent, scrollScroller, newContentScrollPosition);
}
function scrollPageDown(scrollLine)
{
containerObj = scrollLine.parentNode;
for (index in containerObj.childNodes)
{
if (containerObj.childNodes[index].className=='scrollable')
{
scrollableContent = containerObj.childNodes[index];
}
}
for (index in scrollLine.childNodes)
{
if (scrollLine.childNodes[index].className=='scroll_area')
{
scrollArea = scrollLine.childNodes[index];
for (index2 in scrollArea.childNodes)
{
if (scrollArea.childNodes[index2].className=='scroll_scroller')
{
scrollScroller = scrollArea.childNodes[index2];
}
}
}
}
if ((scrollableContent.scrollTop + scrollableContent.offsetHeight) > scrollableContent.scrollHeight - scrollableContent.offsetHeight)
{
newContentScrollPosition = scrollableContent.scrollHeight - scrollableContent.offsetHeight;
}
else
{
newContentScrollPosition = scrollableContent.scrollTop + scrollableContent.offsetHeight;
}
changeScrollPosition(scrollableContent, scrollScroller, newContentScrollPosition);
}
function scrollPageUp(scrollLine)
{
containerObj = scrollLine.parentNode;
for (index in containerObj.childNodes)
{
if (containerObj.childNodes[index].className=='scrollable')
{
scrollableContent = containerObj.childNodes[index];
}
}
for (index in scrollLine.childNodes)
{
if (scrollLine.childNodes[index].className=='scroll_area')
{
scrollArea = scrollLine.childNodes[index];
for (index2 in scrollArea.childNodes)
{
if (scrollArea.childNodes[index2].className=='scroll_scroller')
{
scrollScroller = scrollArea.childNodes[index2];
}
}
}
}
scrollableContent.offsetHeight;
scrollableContent.scrollTop;
scrollableContent.scrollHeight;
if (scrollableContent.scrollTop < scrollableContent.offsetHeight)
{
newContentScrollPosition = 0;
}
else
{
newContentScrollPosition = scrollableContent.scrollTop - scrollableContent.offsetHeight;
}
changeScrollPosition(scrollableContent, scrollScroller, newContentScrollPosition);
}
function changeScrollPosition(scrollableContent, scrollScroller, contentScrollPosition)
{
scrollArea = scrollScroller.parentNode;
scrollAreaHeight = scrollArea.offsetHeight;
scrollableContent.scrollTop = contentScrollPosition;
scrollScrollerPosition = scrollAreaHeight * (contentScrollPosition / scrollableContent.scrollHeight);
scrollScrollerHeight = scrollAreaHeight * (scrollableContent.offsetHeight / scrollableContent.scrollHeight);
scrollScroller.style.height = Math.round(scrollScrollerHeight) + 'px';
scrollScroller.style.top = Math.round(scrollScrollerPosition) + 'px';
}
function hidePasswordText(passwordContainer)
{
for (index in passwordContainer.childNodes)
{
if (passwordContainer.childNodes[index].className=='input_password_text')
{
passwordText = passwordContainer.childNodes[index];
passwordText.style.display = 'none';
}
if (passwordContainer.childNodes[index].tagName=='INPUT' || passwordContainer.childNodes[index].tagName=='input')
{
inputObject = passwordContainer.childNodes[index];
inputObject.focus();
}
}
}
function checkPasswordState(passwordContainer)
{
for (index in passwordContainer.childNodes)
{
if (passwordContainer.childNodes[index].className=='input_password_text')
{
passwordText = passwordContainer.childNodes[index];
}
if (passwordContainer.childNodes[index].tagName=='INPUT' || passwordContainer.childNodes[index].tagName=='input')
{
inputObject = passwordContainer.childNodes[index];
}
}
if (inputObject.value == '')
{
passwordText.style.display = 'block';
}
}
function maillist_submit()
{
if (maillistForm = document.getElementById('maillist_form'))
{
maillistForm.submit();
}
}
function showFullDetails(buttonObject)
{
if (document.getElementById('product_details'))
{
productDetails = document.getElementById('product_details');
productDetails.className = '';
productDetails.style.height = 'auto';
buttonObject.style.display = 'none';
}
}
window.ajaxSearchTimeout = false;
function sendAjaxSearch(event, searchString)
{
if (searchString.length>2 && event.keyCode != 13)
{
if (window.ajaxSearchTimeout)
{
clearTimeout(window.ajaxSearchTimeout);
}
window.ajaxSearchTimeout = setTimeout(function(){
ajaxRequestURL = '/ajax_search.php';
makeRequest(ajaxRequestURL, 'displayAjaxSearchResults', 'search='+searchString);
}, 500);
}
else
{
hideAjaxSearchResults()
}
}
function displayAjaxSearchResults(text)
{
if (document.getElementById('searchResults') && text!="")
{
searchResultsElement = document.getElementById('searchResults');
searchResultsElement.innerHTML = text;
searchResultsElement.style.display = 'block';
document.getElementById('header_block').style.zIndex = '2';
}
}
function reportBadComment(elementID)
{
reportBadText = document.getElementById('reportBadTextHolder').value;
if (confirm(reportBadText))
{
ajaxRequestURL = '/reportbad.php';
makeRequest(ajaxRequestURL, 'markBadComment', 'elementID='+elementID);
}
}
function markBadComment(text)
{
if (document.getElementById('report_'+text))
{
document.getElementById('report_'+text).style.display = 'none';
}
}
function hideAjaxSearchResults()
{
if (document.getElementById('searchResults'))
{
searchResultsElement = document.getElementById('searchResults');
searchResultsElement.style.display = 'none';
document.getElementById('header_block').style.zIndex = '0';
}
}
function selectFirstPageProduct(tabID)
{
if (document.getElementById('first_page_product_'+tabID) && document.getElementById('first_page_tab_'+tabID) && tabID!=selectedFirstPageID)
{
document.getElementById('first_page_product_short').style.display = 'none';
newSelectedObject = document.getElementById('first_page_product_'+tabID);
newSelectedTabRed = document.getElementById('first_page_tab_active_'+tabID);
newSelectedTab = document.getElementById('first_page_tab_'+tabID);
newSelectedTab.style.display = 'none';
newSelectedTabRed.style.display = 'block';
if (document.getElementById('first_page_product_'+selectedFirstPageID) && document.getElementById('first_page_tab_active_'+selectedFirstPageID))
{
oldSelectedObject = document.getElementById('first_page_product_'+selectedFirstPageID);
oldSelectedTab = document.getElementById('first_page_tab_'+selectedFirstPageID);
oldSelectedTabRed = document.getElementById('first_page_tab_active_'+selectedFirstPageID);
oldSelectedTab.style.display = 'block';
oldSelectedTabRed.style.display = 'none';
oldSelectedObject.className = 'first_page_product';
}
newSelectedObject.className = 'first_page_product first_page_product_visible';
selectedFirstPageID = tabID;
}
}
function showUserAgreement()
{
document.getElementById('user_agreement_text').style.display='block';
}
function showEmailServices()
{
document.getElementById('email_selection_body').style.display='block';
document.getElementById('email_selection_element_1').value='1';
document.getElementById('email_selection_element_2').value='1';
document.getElementById('email_selection_element_3').value='1';
document.getElementById('email_selection_element_4').value='1';
document.getElementById('email_selection_element_5').value='1';
document.getElementById('email_selection_element_6').value='1';
}
function checkEmailSelection(selectionNumber)
{
if (document.getElementById('email_selection_'+selectionNumber))
{
emailSelectionObject = document.getElementById('email_selection_'+selectionNumber);
emailSelectionInput = document.getElementById('email_selection_element_'+selectionNumber);
if (emailSelectionInput.value == '1')
{
emailSelectionInput.value = '0';
emailSelectionObject.className = 'button button_gray';
}
else
{
emailSelectionInput.value = '1';
emailSelectionObject.className = 'button button_gray checkbox_selected';
}
}
}
function selectDeliveryCondition(conditionNumber)
{
var objectsCount = 4;
if (document.getElementById('deliverycondition_'+conditionNumber))
{
for (index=1; index<=4; index++)
{
if (document.getElementById('deliverycondition_'+index))
{
document.getElementById('deliverycondition_'+index).className = 'button button_gray';
}
}
deliveryObject = document.getElementById('deliverycondition_'+conditionNumber);
deliveryObject.className = 'button button_gray checkbox_selected';
deliveryInputObject = document.getElementById('deliverycondition');
deliveryInputObject.value = conditionNumber;
}
}
function selectOrdererType(ordererNumber)
{
var objectsCount = 2;
if (document.getElementById('orderertype_'+ordererNumber))
{
for (index=1; index<=4; index++)
{
if (document.getElementById('orderertype_'+index))
{
document.getElementById('orderertype_'+index).className = 'usertype_checkbox';
}
}
ordererObject = document.getElementById('orderertype_'+ordererNumber);
ordererObject.className = 'usertype_checkbox usertype_selected';
ordererInputObject = document.getElementById('orderertype');
ordererInputObject.value = ordererNumber;
}
}
function doOnLoadFunctions()
{
if (document.getElementById('product_details') && document.getElementById('product_details'))
{
if (productDetails = document.getElementById('product_details'))
{
if (productLeft = document.getElementById('product_left'))
{
if (showControls = document.getElementById('show_controls'))
{
if (productDetails.offsetHeight < productLeft.offsetHeight)
{
productDetails.style.height = productLeft.offsetHeight + 'px';
}
if (productDetails.scrollHeight > productDetails.offsetHeight)
{
showControls.style.display = 'block';
}
}
}
}
}
if (document.getElementById('startAjaxQueue'))
{
if (document.getElementById('startAjaxQueue').value == '1')
{
externalConcertId = document.getElementById('externalConcertId').value;
externalShowId = document.getElementById('externalShowId').value;
moveToQueue(externalConcertId, externalShowId);
}
}
}
function showDateSelector()
{
if (document.getElementById('date_selector_popup'))
{
dateSelectorPopup = document.getElementById('date_selector_popup');
{
dateSelectorPopup.style.display = 'block';
}
}
}
function hideDateSelector()
{
if (document.getElementById('date_selector_popup'))
{
dateSelectorPopup = document.getElementById('date_selector_popup');
{
dateSelectorPopup.style.display = 'none';
}
}
}
function validateFromDateSelector()
{
dateFromDay = parseInt(document.getElementById('dateselector_from_day').value);
dateFromMonth = parseInt(document.getElementById('dateselector_from_month').value);
dateFromYear = parseInt(document.getElementById('dateselector_from_year').value);
dateToDay = parseInt(document.getElementById('dateselector_to_day').value);
dateToMonth = parseInt(document.getElementById('dateselector_to_month').value);
dateToYear = parseInt(document.getElementById('dateselector_to_year').value);
if (dateFromYear > dateToYear)
{
dateToYear = dateFromYear;
document.getElementById('dateselector_to_year').value = dateToYear;
document.getElementById('dateselector_to_year_title').innerHTML = document.getElementById('dateselector_from_year_title').innerHTML;
}
if (dateFromYear == dateToYear && dateFromMonth > dateToMonth)
{
dateToMonth = dateFromMonth;
document.getElementById('dateselector_to_month').value = dateToMonth;
document.getElementById('dateselector_to_month_title').innerHTML = document.getElementById('dateselector_from_month_title').innerHTML;
}
if (dateFromYear == dateToYear && dateFromMonth == dateToMonth && dateFromDay > dateToDay)
{
dateToDay = dateFromDay;
document.getElementById('dateselector_to_day').value = dateToDay;
document.getElementById('dateselector_to_day_title').innerHTML = document.getElementById('dateselector_from_day_title').innerHTML;
}
}
function validateToDateSelector()
{
dateFromDay = parseInt(document.getElementById('dateselector_from_day').value);
dateFromMonth = parseInt(document.getElementById('dateselector_from_month').value);
dateFromYear = parseInt(document.getElementById('dateselector_from_year').value);
dateToDay = parseInt(document.getElementById('dateselector_to_day').value);
dateToMonth = parseInt(document.getElementById('dateselector_to_month').value);
dateToYear = parseInt(document.getElementById('dateselector_to_year').value);
if (dateFromYear > dateToYear)
{
dateFromYear = dateToYear;
document.getElementById('dateselector_from_year').value = dateFromYear;
document.getElementById('dateselector_from_year_title').innerHTML = document.getElementById('dateselector_to_year_title').innerHTML;
}
if (dateFromYear == dateToYear && dateFromMonth > dateToMonth)
{
dateFromMonth = dateToMonth;
document.getElementById('dateselector_from_month').value = dateToMonth;
document.getElementById('dateselector_from_month_title').innerHTML = document.getElementById('dateselector_to_month_title').innerHTML;
}
if (dateFromYear == dateToYear && dateFromMonth == dateToMonth && dateFromDay > dateToDay)
{
dateFromDay = dateToDay;
document.getElementById('dateselector_from_day').value = dateToDay;
document.getElementById('dateselector_from_day_title').innerHTML = document.getElementById('dateselector_to_day_title').innerHTML;
}
}
function bbQuote(elementID)
{
authorElement = document.getElementById('forum_topic_author_'+elementID);
contentElement = document.getElementById('forum_topic_text_'+elementID);
textareaElement = document.getElementById('forum_content');
textareaElement.focus();
if (typeof(authorElement.textContent) != 'undefined')
{
authorText = authorElement.textContent;
contentText = contentElement.textContent;
}
else
{
authorText = authorElement.innerText;
contentText = contentElement.innerText;
}
insertedText = "[quote="+authorText+"]"+contentText+"[/quote]";
insertTextToSelection(textareaElement, insertedText);
}
function insertTextToSelection(textareaElement, insertedText)
{
if(textareaElement.selectionEnd || textareaElement.selectionEnd == 0)
{
textareaElement.value = textareaElement.value.slice(0,textareaElement.selectionEnd) + insertedText + textareaElement.value.slice(textareaElement.selectionEnd);
}
else
{
insertAtCaret(textareaElement, insertedText);
}
}
function storeCaret (textEl)
{
if (textEl.createTextRange)
{
textEl.caretPos = document.selection.createRange().duplicate();
}
}
function insertAtCaret (textEl, text)
{
if (textEl.caretPos)
{
var caretPos = textEl.caretPos;
caretPos.text =
caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?
text + ' ' : text;
}
else
{
textEl.value = text;
textEl.caretPos = document.selection.createRange().duplicate();
}
}
var topicPosted = false;
function postForumTopic()
{
randInput = document.getElementById('rand');
randInput.name = randInput.name + '_' + randInput.value;
if (!topicPosted)
{
document.getElementById('forumForm').submit();
}
topicPosted = true;
}
var scrollBannersTimeOut = null;
var scrollBannersHolder = null;
var templateWidthHolder = null;
var speedHolder = null;
var directionHolder = null;
function scrollBannersInit(templateWidth, templateHeight, direction, speed)
{
var scrollBanners = document.getElementById('scrollbanners');
var scrollBannersContainer = document.getElementById('scrollbanners_block');
scrollBannersContainer.style.height = templateHeight+'px';
scrollBanners.style.height = templateHeight+'px';
var scrollBannersTemplate = document.getElementById('scrollbanners_template');
var windowWidth = $(window).width();
var scrollBlocksCount = Math.ceil(windowWidth/templateWidth) + 1;
for (index = 0; index < scrollBlocksCount; index++)
{
var copiedBlock = scrollBannersTemplate.cloneNode(true);
copiedBlock.style.position = 'absolute';
copiedBlock.style.left = (index * templateWidth)+'px';
copiedBlock.id = copiedBlock.id+'_'+index;
scrollBanners.appendChild(copiedBlock);
}
scrollBannersHolder = scrollBanners;
templateWidthHolder = templateWidth;
directionHolder = direction;
speedHolder = parseInt(speed)*3;
if (directionHolder == 'right')
{
scrollBannersHolder.scrollLeft = scrollBannersHolder.scrollWidth - templateWidthHolder;
}
else
{
scrollBannersHolder.scrollLeft = 0;
}
scrollBannersBlock();
}
function closeScrollBanner()
{
clearTimeout(scrollBannersTimeOut);
var scrollBannersBlock = document.getElementById('scrollbanners_block');
scrollBannersBlock.style.display = 'none';
}
function continueScrollBanner(templateWidth, templateHeight, direction, speed)
{
if (scrollBannersHolder == null)
{
scrollBannersInit(templateWidth, templateHeight, direction, speed)
}
else
{
scrollBannersBlock();
}
}
function scrollBannersBlock()
{
if (directionHolder == 'right')
{
if (scrollBannersHolder.scrollLeft + scrollBannersHolder.offsetWidth - speedHolder  <= scrollBannersHolder.scrollWidth - templateWidthHolder)
{
scrollBannersHolder.scrollLeft = scrollBannersHolder.scrollWidth - scrollBannersHolder.offsetWidth;
}
else
{
scrollBannersHolder.scrollLeft = scrollBannersHolder.scrollLeft - speedHolder;
}
}
else
{
if (scrollBannersHolder.scrollLeft + speedHolder >= templateWidthHolder)
{
scrollBannersHolder.scrollLeft = 0;
}
else
{
scrollBannersHolder.scrollLeft = scrollBannersHolder.scrollLeft + speedHolder;
}
}
scrollBannersTimeOut = setTimeout(scrollBannersBlock, 30);
}
function showPopup(parentNode, textNodeName)
{
if (!parentNode.popupNode)
{
var popupTemplate = document.getElementById('popup_template');
var textNode = document.getElementById(textNodeName);
var newPopup = popupTemplate.cloneNode(true);
for (index in newPopup.childNodes)
{
if (newPopup.childNodes[index].className=='popup_center')
{
popupCenter = newPopup.childNodes[index];
for (index2 in popupCenter.childNodes)
{
if (popupCenter.childNodes[index2].className=='popup_content')
{
popupContent = popupCenter.childNodes[index2];
popupContent.innerHTML = textNode.innerHTML;
break;
}
}
}
}
newPopup.id = null;
parentNode.appendChild(newPopup);
parentNode.popupNode = newPopup;
newPopup.style.display = 'block';
}
}
function hidePopup(e,parentNode)
{
var mouseOnPopup = false;
if (!e) var e = window.event;
var relTarg = e.relatedTarget || e.fromElement;
if ((relTarg.parentNode && relTarg.parentNode.className == 'popup darkgray_popup') || (relTarg.parentNode.parentNode && relTarg.parentNode.parentNode.className == 'popup darkgray_popup'))
{
mouseOnPopup = true;
}
if (parentNode.popupNode && !mouseOnPopup)
{
parentNode.removeChild(parentNode.popupNode);
parentNode.popupNode = null;
}
}
function openURL(url)
{
if (navigator.appName == "Microsoft Internet Explorer")
{
var refererLink = document.createElement('a');
refererLink.href = url;
refererLink.style.display = 'block';
refererLink.style.height = '0';
refererLink.style.overflow = 'hidden';
document.body.appendChild(refererLink);
refererLink.click();
}
else
{
document.location.href = url;
}
}
var ajaxRequestResourceNumber = 0;
var ajaxRequestHistory = new Array();
function makeRequest(ajaxRequestURL, receiptionFunctionName, postParameters, receiveXML)
{
if (!postParameters)
{
postParameters = '';
}
if (!receiveXML)
{
receiveXML = false;
}
ajaxRequestResourceNumber++;
ajaxRequestURL = ajaxRequestURL;
var ajaxRequestResource = null;
if(!(ajaxRequestResource = initAjaxObject()))
{
alert("XmlHttpRequest failure");
}
else
{
ajaxRequestResource.open("POST", ajaxRequestURL, true);
ajaxRequestResource.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajaxRequestResource.setRequestHeader("Content-length", postParameters.length);
ajaxRequestResource.onreadystatechange = function()
{
if(ajaxRequestResource.readyState == 4 && ajaxRequestResource.status == 200)
{
receiveResponse(ajaxRequestResource, receiptionFunctionName, receiveXML);
}
}
ajaxRequestResource.send(postParameters);
ajaxRequestHistory[ajaxRequestResourceNumber] = new Array();
ajaxRequestHistory[ajaxRequestResourceNumber]['queryTime'] = getCurrentTime();
ajaxRequestHistory[ajaxRequestResourceNumber]['answerTime'] = '--:--:--';
ajaxRequestHistory[ajaxRequestResourceNumber]['number'] = ajaxRequestResourceNumber;
debugAjaxData(ajaxRequestResourceNumber);
return ajaxRequestResource;
}
}
function initAjaxObject()
{
if (window.XMLHttpRequest)
{
return new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
try
{
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
return new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E)
{
return null;
}
}
}
else
{
return null;
}
}
function checkAjaxObjectStatus(ajaxRequestResource)
{
if(ajaxRequestResource.readyState == 4 && ajaxRequestResource.status == 200)
{
return true;
}
else return false;
}
function receiveResponse(ajaxRequestResource, receiptionFunctionName, receiveXML)
{
ajaxRequestHistory[ajaxRequestResourceNumber]['result'] = 'success';
ajaxRequestHistory[ajaxRequestResourceNumber]['answerTime'] = getCurrentTime();
debugAjaxData(ajaxRequestResourceNumber);
if (typeof(receiptionFunctionName) != "undefined")
{
if (typeof(receiptionFunctionName) == "string")
{
if (typeof(eval(receiptionFunctionName)) != "undefined")
{
if (!receiveXML)
{
eval(receiptionFunctionName)(ajaxRequestResource.responseText);
}
else
{
eval(receiptionFunctionName)(ajaxRequestResource.responseXML);
}
}
}
else
{
if (!receiveXML)
{
receiptionFunctionName(ajaxRequestResource.responseText);
}
else
{
receiptionFunctionName(ajaxRequestResource.responseXML);
}
}
}
}
var debugAjaxArray = new Array;
function debugAjaxData(lastAjaxResource)
{
debugAjaxArray[ajaxRequestResourceNumber] = new Array;
debugAjaxArray[ajaxRequestResourceNumber]['number'] = ajaxRequestResourceNumber;
debugAjaxArray[ajaxRequestResourceNumber]['result'] = ajaxRequestHistory[ajaxRequestResourceNumber]['result'];
debugAjaxArray[ajaxRequestResourceNumber]['queryTime'] = ajaxRequestHistory[ajaxRequestResourceNumber]['queryTime'];
debugAjaxArray[ajaxRequestResourceNumber]['answerTime'] = ajaxRequestHistory[ajaxRequestResourceNumber]['answerTime'];
}
function debugAjaxScreen()
{
htmlText = '';
if (!(debugDiv = document.getElementById('debugAjaxScreen')))
{
var debugDiv = document.createElement('div');
debugDiv.style.position = 'absolute';
debugDiv.style.top = '0';
debugDiv.style.left = '0';
debugDiv.style.width = '';
debugDiv.style.zIndex = '2000';
debugDiv.style.backgroundColor = '#ffffff';
debugDiv.id = 'debugAjaxScreen';
document.body.appendChild(debugDiv);
}
htmlText += '<table>';
for (index in debugAjaxArray)
{
htmlText += '</tr>';
htmlText += '<td><b>'+debugAjaxArray[index]['number']+': </b></td>';
htmlText += '<td>'+debugAjaxArray[index]['queryTime']+' </td>';
htmlText += '<td>'+debugAjaxArray[index]['answerTime']+' </td>';
htmlText += '<td>'+debugAjaxArray[index]['result']+' </td>';
htmlText += '</tr>';
}
htmlText += '</table>';
debugDiv.innerHTML = htmlText;
}
function getCurrentTime()
{
var currentTime = new Date();
var hours = formatNumber(currentTime.getHours(), 2);
var minutes = formatNumber(currentTime.getMinutes(), 2);
var seconds = formatNumber(currentTime.getSeconds(), 2);
var milliseconds = formatNumber(currentTime.getMilliseconds(), 3);
return hours+':'+minutes+':'+seconds;
}
function formatNumber(number, decimals)
{
number = number.toString();
if (number.length < decimals)
{
for (a=decimals-number.length; a>0; a--)
{
number = '0'+number;
}
}
return number;
}
/*
* jQuery 1.2.6 - New Wave Javascript
*
* Copyright (c) 2008 John Resig (jquery.com)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
* $Rev: 5685 $
*/
(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else
return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else
return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else
selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else
return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else
this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i<length;i++)if((options=arguments[i])!=null)for(var name in options){var src=target[name],copy=options[name];if(target===copy)continue;if(deep&&copy&&typeof copy=="object"&&!copy.nodeType)target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)target[name]=copy;}return target;};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else
script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!==undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){for(name in object)if(callback.apply(object[name],args)===false)break;}else
for(;i<length;)if(callback.apply(object[i++],args)===false)break;}else{if(length==undefined){for(name in object)if(callback.call(object[name],name,object[name])===false)break;}else
for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else
jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem+='';if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else
ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&&notxml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else
while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]===elem)return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else
while(elem=second[i++])first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv!=!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)ret[ret.length]=value;}return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else
for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i<args.length)jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else
jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!='string')return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else
xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else
jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})();
function floated_center_block(id, banner_w, banner_h, extratop) {
floatBanner = $(id);
headerHeight = 73;
var width = 0;
var height = 0;
window_w = $(window).width();
window_h = $(window).height() - headerHeight;
if (floatBanner.width()  > banner_w) {
banner_w = banner.width();
}
if (floatBanner.height() > banner_h) {
banner_h = banner.height();
}
if (window_w > banner_w) {
width = window_w / 2 - banner_w / 2;
}
if (window_h > banner_h) {
height = window_h / 2 - banner_h / 2;
}
if (extratop === true) {
height = height + $(window).scrollTop() ;
}
height = height + headerHeight;
if (!floatBanner.is(':visible')) {
floatBanner
.css('left', width)
.css('top', height)
.show();
} else {
floatBanner.animate(
{
left: width,
top: height
}, 1);
}
}
function move_content(obj_name, direction, speed)
{
var step = 0;
var timeout = 1;
if (speed == 1)
{
step = 1;
timeout = 100;
}
if (speed == 2)
{
step = 1;
timeout = 1
}
if (speed == 3)
{
step = 2;
timeout = 1;
}
if (speed == 4)
{
step = 3;
timeout = 1;
}
if (speed == 5)
{
step = 5;
timeout = 1;
}
obj = document.getElementById(obj_name);
if (direction == "right"){
step = step;
if (obj.scrollLeft == $(window).width())
{
obj.scrollLeft = step;
}
}else{
if (obj.scrollLeft == 0)
{
obj.scrollLeft = $(window).width();
}
step = -step;
}
obj.scrollLeft = obj.scrollLeft + step;
scrolltimer = window.setTimeout("move_content('"+obj_name+"', '"+direction+"', " + speed + ")", timeout);
}
function init_popupbanner() {
if (!$('#popupbanner').is('.enable')) {
return false;
}
$('#popupbanner .close').click(function() {
$('#popupbanner').hide();
})
floated_center_block('#popupbanner');
$(window).resize(function() {floated_center_block('#popupbanner')});
}
function init_introbanner() {
if ($('#introbanner').length) {
floated_center_block('#introbanner');
setTimeout("window.location = 'document.referrer'", 5000)
$(window).resize(function() {floated_center_block('#introbanner')});
}
}
function init_scrollbanners() {
if ($('#scrollbanners').length) {
margin = $(window).width()/2 - $('#scrollbanners a:first').width()/2;
$('#scrollbanners div').css('padding-left', Math.round(margin)).css('padding-right', Math.round(margin));
move_content('scrollbanners', 'right');
$('.close_scrollbanners').click(function() {$('.scrollbanners_block').hide()})
}
}
function seconds(sec) {
$('#seconds').html(' (' + sec + ')');
sec--;
if (sec > 0) {
setTimeout(seconds(sec), 10000);
}
return false;
}
var timerScreenStatus = false;
var concertId = null;
var showId = null;
var timerQueryTimeout = null;
var timerQueryFailTimeout = null;
var timerRepaintTimeout = null;
var queryDelay = 5000 * 1;
var queryFailDelay = 9000;
var lastAjaxResource = null;
function moveToQueue(externalConcertId, externalShowId)
{
concertId = externalConcertId;
showId = externalShowId;
checkQueueStatus();
}
function checkQueueStatus()
{
var ajaxRequestURL = '/ajax_queue.php';
lastAjaxResource = makeRequest(ajaxRequestURL, 'catchQueueQueryResult', 'concertId='+concertId+'&showId='+showId);
timerQueryFailTimeout = setTimeout(checkQueueFailStatus, queryFailDelay);
}
function checkQueueFailStatus()
{
if (!checkAjaxObjectStatus(lastAjaxResource))
{
clearTimeout(timerQueryTimeout);
clearTimeout(timerQueryFailTimeout);
lastAjaxResource.result = 'fail';
lastAjaxResource.answerTime = getCurrentTime();
debugAjaxData(ajaxRequestResource);
lastAjaxResource.abort();
lastAjaxResource = null;
startTimerScreen();
checkQueueStatus();
}
else
{
catchQueueQueryResult(ajaxRequestResource.responseText);
}
}
function catchQueueQueryResult(response)
{
clearTimeout(timerQueryFailTimeout);
if (response == 'no')
{
timerQueryTimeout = setTimeout(checkQueueStatus, queryDelay);
startTimerScreen();
}
else
{
clearTimeout(timerQueryTimeout);
openURL(response);
}
}
function startTimerScreen()
{
if (!timerScreenStatus)
{
queryFailDelay = 1000*5;
timerScreenStatus = true;
newHeight = document.documentElement.scrollHeight;
var timerScreenObj = document.getElementById('timerScreen');
timerScreenObj.style.height = newHeight+'px';
timerScreenObj.style.display = 'block';
repaintTimerScreen();
}
}
function repaintTimerScreen()
{
var lastUpdateTimeObj = document.getElementById('lastUpdateTime');
var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()
var seconds = currentTime.getSeconds()
lastUpdateTimeObj.innerHTML = hours+':'+minutes+':'+seconds;
timerRepaintTimeout = setTimeout(repaintTimerScreen, queryDelay);
}
function sendStopQuery()
{
var confirmationText = document.getElementById('queue_refuseconfirm').value;
if (confirm(confirmationText))
{
clearTimeout(timerRepaintTimeout);
clearTimeout(timerQueryTimeout);
clearTimeout(timerQueryFailTimeout);
lastAjaxResource.abort();
lastAjaxResource = null;
var ajaxRequestURL = '/ajax_queue.php';
lastAjaxResource = makeRequest(ajaxRequestURL, 'stopTimerScreen', 'stop=1');
document.location.reload(true);
}
}
function stopTimerScreen()
{
if (timerScreenStatus)
{
var timerScreenObj = document.getElementById('timerScreen');
timerScreenObj.style.display = 'none';
timerScreenStatus = false;
}
}
function buyButton(objectId, objectName, startDate, concertID, showID)
{
this.init = function()
{
if (document.getElementById(instance.objectId))
{
instance.buttonObject = document.getElementById(instance.objectId);
var currentTime = new Date();
var testedTime = new Date(instance.startDate * 1000);
var difference = parseInt(testedTime-currentTime);
if (difference > 0)
{
if (difference < 24*60*60*1000)
{
setTimeout(instance.checkStatus, difference);
}
}
else
{
instance.checkStatus();
}
}
}
this.checkStatus = function()
{
instance.ajaxResource = makeRequest(instance.ajaxRequestURL, instance.objectName+'.getResult', 'concertID='+instance.concertID+'&showID='+instance.showID);
instance.failTimeout = setTimeout(instance.checkFail, instance.queryFailDelay);
}
this.getResult = function(resultText)
{
clearTimeout(instance.failTimeout);
if (resultText != 'no')
{
if (document.getElementById(instance.objectId+'_text'))
{
var textObject = document.getElementById(instance.objectId+'_text');
textObject.style.display = 'none';
}
instance.buttonObject.style.cursor = 'pointer';
instance.buttonObject.className = 'button button_red';
instance.url = resultText;
window.eventsManager.addHandler(instance.buttonObject, 'click', instance.followLink);
}
else
{
setTimeout(instance.objectName+'.checkStatus()', 5000);
}
}
this.followLink = function()
{
moveToQueue(instance.concertID, instance.showID);
}
this.checkFail = function()
{
if (!checkAjaxObjectStatus(instance.ajaxResource))
{
instance.ajaxResource.abort();
instance.checkStatus();
}
}
var instance = this;
this.objectId = objectId;
this.objectName = objectName;
this.startDate = startDate;
this.concertID = concertID;
this.showID = showID;
this.buttonObject = null;
this.ajaxResource = null;
this.failTimeout = null;
this.url = null;
this.queryFailDelay = 1000*5;
this.ajaxRequestURL = '/ajax_salestart.php';
window.eventsManager.addHandler(window, 'load', this.init);
}

