
if(typeof Panagora!='object'||typeof Panagora=='undefined')
var Panagora={};if(typeof console!='object')
var console={log:function(){},info:function(){}}
var $j=jQuery.noConflict();Panagora.CreateModalFromElement=function(content,toggleLink,options){function toggleWindow(e){e.stopPropagation();e.cancelBubble=true;if(isVisible)modalWindow.Hide();else modalWindow.Show();return false;}
function windowUp(){isVisible=true;}
function windowDown(){isVisible=false;}
var modalWindow;var isVisible=false;options=options||{};options.callbacks=options.callbacks||{};options.callbacks.hide=windowDown;options.callbacks.show=windowUp;content=content.tagName?$j(content):$j('#'+content);toggleLink=toggleLink.tagName?$j(toggleLink):$j('#'+toggleLink);$j(document).ready(function(){modalWindow=new Panagora.ModalWindow(options);modalWindow.SetContent(content);toggleLink.click(toggleWindow);});}
Panagora.AddImageZoom=function(toggleElement,options){function shutdown(){modalWindow.ShutDown();}
function open(e){e.stopPropagation();e.cancelBubble=true;options.width=0;options.height=0;options.callbacks=options.callbacks||{};options.callbacks.hide=shutdown;toggleElement.modalWindow=modalWindow=new Panagora.ModalWindow(options);var image=$j('<img src="/static/images/wait.gif" style="padding: 25px" />').get(0);modalWindow.SetContent(image);modalWindow.Show();var imgObj=new Image();imgObj.onload=function(){img=$j('<img/>').load(function(){var dims={height:imgObj.height,width:imgObj.width};if(dims.width&&dims.height){modalWindow.SetOptions(dims);}
$j(img).click(shutdown);modalWindow.SetContent(img);});img.attr('src',imgObj.src);}
imgObj.src=toggleElement.attr('href');return false;}
var modalWindow;var toggleElement;options=options||{};toggleElement=toggleElement.tagName?$j(toggleElement):$j('#'+toggleElement);var img;$j(document).ready(function(){toggleElement.click(open);});}
Panagora.ModalWindow=function(options){var self=this;if(!options||typeof options!='object')
options={};options.callbacks=options.callbacks||{};options.width=options.width||0;options.height=options.height||0;options.vMargin=options.vMargin||0;options.hMargin=options.hMargin||0;options.idBase=options.idBase||'';var gui={overlay:$j('<div class="modal-overlay"></div>'),positioner:$j('<div class="modal-positioner"></div>'),padder:$j('<div class="modal-padder"></div>'),sizer:$j('<div class="modal-sizer"></div>'),content:$j('<div></div>'),closer:$j('<div class="modal-closer">X</div>')}
if(options.idBase.length){for(var key in gui){var item=gui[key];if(item.attr('class').length)
item.attr('id',options.idBase+'-'+item.attr('class'));}}
function init(){gui.overlay.appendTo(document.body);gui.positioner.appendTo(document.body);gui.padder.appendTo(gui.positioner);gui.sizer.appendTo(gui.padder);gui.closer.appendTo(gui.padder);gui.content.appendTo(gui.sizer);gui.overlay.click(self.Hide);gui.closer.click(self.Hide);}
function resizeContainer(){var wDims=Panagora.GetWindowSize();var width=wDims.width;if(options.width&&!isNaN(options.width)){width=options.width;}else if(new String(options.width).match(/%$/)){width=wDims.width*(parseInt(options.width,10)/100);}else if(options.hMargin&&!isNaN(options.hMargin)){width=wDims.width-options.hMargin*2;}else{width=gui.content.width();}
var height=wDims.height;if(options.height&&!isNaN(options.height)){gui.content.height('100%');height=options.height;}else if(new String(options.height).match(/%$/)){gui.content.height('100%');height=wDims.height*(parseInt(options.height,10)/100);}else if(options.vMargin&&!isNaN(options.vMargin)){gui.content.height('100%');height=wDims.height-options.vMargin*2;}else{height=gui.content.height();}
gui.sizer.width(width).height(height);gui.overlay.width(wDims.width).height(wDims.height);}
function positionContainer(){var wDims=Panagora.GetWindowSize();var so=Panagora.GetScrollingOffset();var left=0;if(gui.positioner.width()<wDims.width){var left=Math.floor(wDims.width/2-gui.positioner.width()/2)+so.left;}
gui.positioner.css('left',left+'px');var top=0;if(gui.positioner.height()<wDims.height){top=Math.floor(wDims.height/2-gui.positioner.height()/2)+so.top;}
gui.positioner.css('top',top+'px');}
function positionOverlay(){var so=Panagora.GetScrollingOffset();gui.overlay.css('top',so.top+'px').css('left',so.left+'px');}
var resizeTimeout;this.SetContent=function(content){gui.content.html('');$j(content).appendTo(gui.content).css('display','block');positionOverlay();if(resizeTimeout)
clearTimeout(resizeTimeout);resizeTimeout=setTimeout(function(){resizeContainer();positionContainer();},70);}
this.SetOptions=function(newOptions){options.callbacks.hide=newOptions.callbacks?newOptions.callbacks.hide:options.callbacks.hide;options.callbacks.show=newOptions.callbacks?newOptions.callbacks.show:options.callbacks.show;options.callbacks.shutDown=newOptions.callbacks?newOptions.callbacks.shutDown:options.callbacks.shutDown;options.width=newOptions.width!=undefined?newOptions.width:options.width;options.height=newOptions.height!=undefined?newOptions.height:options.height;options.vMargin=newOptions.vMargin!=undefined?newOptions.vMargin:options.vMargin;options.hMargin=newOptions.hMargin!=undefined?newOptions.hMargin:options.hMargin;options.idBase=newOptions.idBase!=undefined?newOptions.idBase:options.idBase;}
function handleKey(e){if(e.which==27)
self.Hide();}
function handleResize(){positionOverlay();resizeContainer();positionContainer();}
function handleScroll(){positionOverlay();positionContainer();}
this.Show=function(){$j(document).keyup(handleKey);$j(window).bind('resize',handleResize);$j(window).bind('scroll',handleScroll);gui.overlay.css('visibility','visible');gui.positioner.css('visibility','visible');positionOverlay();resizeContainer();positionContainer();if(options.callbacks.show)
options.callbacks.show(this);}
this.Hide=function(){$j(document).unbind('keyup',handleKey);$j(window).unbind('resize',handleResize);$j(window).unbind('scroll',handleScroll);gui.overlay.css('visibility','hidden');gui.positioner.css('visibility','hidden');if(options.callbacks.hide)
options.callbacks.hide(this);}
this.ShutDown=function(){$j(document).unbind('keyup',handleKey);$j(window).unbind('resize',handleResize);$j(window).unbind('scroll',handleScroll);gui.overlay.unbind('click',this.Hide);gui.closer.unbind('click',this.Hide);gui.closer.remove();gui.sizer.remove();gui.padder.remove();gui.positioner.remove();gui.overlay.remove();if(options.callbacks.shutDown)
options.callbacks.shutDown();delete(gui);delete(options);delete(self);}
this.GetContentWidth=function(){return gui.content.width();}
this.GetContentHeight=function(){return gui.content.height();}
init();}
Panagora.GetWindowSize=function(){return{height:$j(window).height(),width:$j(window).width()};}
Panagora.GetBodySize=function(){return{height:$j(document).height(),width:$j(document).width()}}
Panagora.GetScrollingOffset=function(){var x,y;if(self.pageYOffset)
{x=self.pageXOffset;y=self.pageYOffset;}
else if(document.documentElement&&document.documentElement.scrollTop)
{x=document.documentElement.scrollLeft;y=document.documentElement.scrollTop;}
else if(document.body)
{x=document.body.scrollLeft;y=document.body.scrollTop;}
return{left:x,top:y};}