
var Class={
create:function(){
return function(){
this.initialize.apply(this,arguments);}}}
function $(){
var elements=new Array();
for(var i=0;i<arguments.length;i++){
var element=arguments[i];
if(typeof element=='string')
element=document.getElementById(element);
if(arguments.length==1)
return element;
elements.push(element);}
return elements;}
document.getElementsByClassName=function(className,parentElement){
var elements=new Array();
var children=($(parentElement)||document.body).getElementsByTagName('*');
for(var i=0;i<children.length;i++){
var child=children[i];
if(child.className.match(new RegExp("(^|\\s)"+className+"(\\s|$)")))
elements.push(child);}
return elements;}
Function.prototype.bindAsEventListener=function(object){
var __method=this;
return function(event){
return __method.call(object,event||window.event);}}
var PBoxDetect={
strUserAgent:null,
strOS:null,
strBrowser:null,
strVersion:null,
strTotal:null,
strLastCheckItMatch:null,
nLastCheckItPos:-1,
GetBrowserInfo:function(){
this.strUserAgent=navigator.userAgent.toLowerCase();
if(this.CheckIt('konqueror')){
this.strBrowser="Konqueror";
this.strOS="Linux";}
else if(this.CheckIt('safari'))this.strBrowser="Safari";
else if(this.CheckIt('omniweb'))this.strBrowser="OmniWeb";
else if(this.CheckIt('opera'))this.strBrowser="Opera";
else if(this.CheckIt('webtv'))this.strBrowser="WebTV";
else if(this.CheckIt('icab'))this.strBrowser="iCab";
else if(this.CheckIt('msie'))this.strBrowser="Internet Explorer";
else if(this.CheckIt('firefox'))this.strBrowser="Firefox";
else if(!this.CheckIt('compatible')){
this.strBrowser="Netscape Navigator"
this.strVersion=this.strUserAgent.charAt(8);}
else this.strBrowser="An unknown browser";
if(!this.strVersion)this.strVersion=this.strUserAgent.charAt(this.nLastCheckItPos+this.strLastCheckItMatch.length);
if(!this.strOS){
if(this.CheckIt('linux'))this.strOS="Linux";
else if(this.CheckIt('x11'))this.strOS="Unix";
else if(this.CheckIt('mac'))this.strOS="Mac"
else if(this.CheckIt('win'))this.strOS="Windows"
else this.strOS="an unknown operating system";}},
CheckIt:function(string){
this.nLastCheckItPos=this.strUserAgent.indexOf(string)+1;
this.strLastCheckItMatch=string;
return this.nLastCheckItPos;}};
var PBoxHelpers={
HasClassName:function(element,className){
if(element.className.match(new RegExp("(^|\\s)"+className+"(\\s|$)")))
return true;
return false;},
ObserveEvent:function(element,name,observer,useCapture){
var element=$(element);
useCapture=useCapture||false;
if(element.addEventListener){
element.addEventListener(name,observer,useCapture);}else if(element.attachEvent){
element.attachEvent('on'+name,observer);}},
GetViewportSize:function(){
var size=[0,0];
if(typeof window.innerWidth!='undefined'){
var elMeasure=$('pbox_measure');
if(elMeasure&&elMeasure.scrollWidth){
size=[elMeasure.scrollWidth,elMeasure.scrollHeight];}else{
size=[window.innerWidth,window.innerHeight];}}else if(typeof document.documentElement!='undefined'&&
typeof document.documentElement.clientWidth!='undefined'&&
document.documentElement.clientWidth!=0){
size=[document.documentElement.clientWidth,document.documentElement.clientHeight];}else{
size=[document.getElementsByTagName('body')[0].clientWidth,
document.getElementsByTagName('body')[0].clientHeight];}
return size;},
GetStyle:function(el,styleProp){
var el=$(el);
if(!el)return"";
var style=null;
if(el.currentStyle){
style=el.currentStyle[styleProp];}else if(document.defaultView.getComputedStyle){
var css=document.defaultView.getComputedStyle(el,null);
if(css)
style=css[styleProp];}else if(window.getComputedStyle){
var css=window.getComputedStyle(el,null);
if(css)
style=css.getPropertyValue(styleProp);}
return style;},
GetPicnikBoxStyleValue:function(strStyle){
var strT=this.GetStyle($('pbox_picnik'),strStyle);
if(strT){
return parseInt(strT.substr(0,strT.length-2));}
return 0;}}
var PBoxLink=Class.create();
PBoxLink.prototype={
_yPos:0,
_elLink:null,
initialize:function(ctrl){
this._elLink=ctrl;
PBoxHelpers.ObserveEvent(this._elLink,'click',this.activate.bindAsEventListener(this),false);
this._elLink.onclick=function(){return false;};},
activate:function(){
if(PBoxDetect.strBrowser=='Internet Explorer'){
this.getScroll();
this.prepareIE('100%','hidden');
this.setScroll(0,0);
this.hideSelects('hidden');}
PicnikBox.SetActiveLink(this);
this.displayPicnikbox("block");},
prepareIE:function(height,overflow){
bod=document.getElementsByTagName('body')[0];
bod.style.height=height;
bod.style.overflow=overflow;
htm=document.getElementsByTagName('html')[0];
htm.style.height=height;
htm.style.overflow=overflow;},
hideSelects:function(visibility){
selects=document.getElementsByTagName('select');
for(i=0;i<selects.length;i++){
selects[i].style.visibility=visibility;}},
getLinkElement:function(){
return this._elLink;},
getScroll:function(){
if(self.pageYOffset){
this._yPos=self.pageYOffset;}else if(document.documentElement&&document.documentElement.scrollTop){
this._yPos=document.documentElement.scrollTop;}else if(document.body){
this._yPos=document.body.scrollTop;}},
setScroll:function(x,y){
window.scrollTo(x,y);},
displayPicnikbox:function(display){
$('pbox_overlay').style.display=display;
if(display!='none'){
PicnikBox.OnResize();
$('pbox_picnik').innerHTML="<iframe id='pbox_iframe' frameborder='0' scrolling='no' src='"+this._elLink.href+"'></iframe>";}else{
$('pbox_picnik').innerHTML='';}},
deactivate:function(){
if(PBoxDetect.strBrowser=="Internet Explorer"){
this.prepareIE("auto","auto");
this.hideSelects("visible");
this.setScroll(0,this._yPos);}
this.displayPicnikbox("none");
PicnikBox.SetActiveLink(null);}}
var PicnikBox={
_obActivePBLink:null,
_obPBLinks:{},
_fExpanded:false,
_obNonExpandedStyle:{},
_fnActivate:null,
_fnDeactivate:null,
_obNoBorders:{top:0,left:0,bottom:0,right:0,style:"none",color:"#ccc"},
_obNoMargins:{top:0,left:0,bottom:0,right:0},
_obPicnikMargins:{top:20,left:20,bottom:20,right:20},
_obPicnikBorders:{top:1,left:1,bottom:1,right:1,style:"solid",color:"#ccc"},
_obOverlayMargins:{top:0,left:0,bottom:0,right:0},
_obOverlayBorders:{top:0,left:0,bottom:0,right:0,style:"solid",color:"#ccc"},
SetPicnikMargin:function(size){
PicnikBox.SetPicnikMargins(size,size,size,size);},
SetPicnikMargins:function(top,right,bottom,left){
PicnikBox._obPicnikMargins.top=top;
PicnikBox._obPicnikMargins.left=left;
PicnikBox._obPicnikMargins.bottom=bottom;
PicnikBox._obPicnikMargins.right=right;},
SetOverlayMargin:function(size){
PicnikBox.SetOverlayMargins(size,size,size,size);},
SetOverlayMargins:function(top,right,bottom,left){
PicnikBox._obOverlayMargins.top=top;
PicnikBox._obOverlayMargins.left=left;
PicnikBox._obOverlayMargins.bottom=bottom;
PicnikBox._obOverlayMargins.right=right;},
SetPicnikBorder:function(size,style,color){
PicnikBox.SetPicnikBorders(size,size,size,size,style,color);},
SetPicnikBorders:function(top,right,bottom,left,style,color){
PicnikBox._obPicnikBorders.top=top;
PicnikBox._obPicnikBorders.left=left;
PicnikBox._obPicnikBorders.bottom=bottom;
PicnikBox._obPicnikBorders.right=right;
PicnikBox._obPicnikBorders.style=style||"solid";
PicnikBox._obPicnikBorders.color=color||"#ccc";},
SetOverlayBorder:function(size,style,color){
PicnikBox.SetOverlayBorders(size,size,size,size,style,color);},
SetOverlayBorders:function(top,right,bottom,left,style,color){
PicnikBox._obOverlayBorders.top=top;
PicnikBox._obOverlayBorders.left=left;
PicnikBox._obOverlayBorders.bottom=bottom;
PicnikBox._obOverlayBorders.right=right;
PicnikBox._obOverlayBorders.style=style||"solid";
PicnikBox._obOverlayBorders.color=color||"#ccc";},
SetActivateCallback:function(fnActivate){
PicnikBox._fnActivate=fnActivate;},
SetDeactivateCallback:function(fnDeactivate){
PicnikBox._fnDeactivate=fnDeactivate;},
SetActiveLink:function(link){
if(link&&PicnikBox._fnActivate){
PicnikBox._fnActivate(link.getLinkElement());}else if(!link&&PicnikBox._obActivePBLink&&PicnikBox._fnDeactivate){
PicnikBox._fnDeactivate(PicnikBox._obActivePBLink.getLinkElement());}
PicnikBox._obActivePBLink=link;},
OnLoad:function(){
PBoxDetect.GetBrowserInfo();
PicnikBox.AddPicnikBoxMarkup();
var links=document.getElementsByClassName('pbox');
for(i=0;i<links.length;i++)
PicnikBox.AddLink(links[i]);},
AddLink:function(elLink){
var valid=new PBoxLink(elLink);},
SetStyles:function(){
var pbox=$('pbox_picnik');
var iframe=$('pbox_iframe');
var overlay=$('pbox_overlay');
var obPicnikBorders=!PicnikBox._fExpanded?PicnikBox._obPicnikBorders:PicnikBox._obNoBorders;
var obPicnikMargins=!PicnikBox._fExpanded?PicnikBox._obPicnikMargins:PicnikBox._obNoMargins;
var obOverlayBorders=!PicnikBox._fExpanded?PicnikBox._obOverlayBorders:PicnikBox._obNoBorders;
var obOverlayMargins=!PicnikBox._fExpanded?PicnikBox._obOverlayMargins:PicnikBox._obNoMargins;
pbox.style['borderStyle']=obPicnikBorders.style;
pbox.style['borderColor']=obPicnikBorders.color;
pbox.style['borderTopWidth']=obPicnikBorders.top+"px";
pbox.style['borderLeftWidth']=obPicnikBorders.left+"px";
pbox.style['borderBottomWidth']=obPicnikBorders.bottom+"px";
pbox.style['borderRightWidth']=obPicnikBorders.right+"px";
pbox.style['marginTop']=obPicnikMargins.top+"px";
pbox.style['marginLeft']=obPicnikMargins.left+"px";
pbox.style['marginBottom']=obPicnikMargins.bottom+"px";
pbox.style['marginRight']=obPicnikMargins.right+"px";
overlay.style['borderStyle']=obOverlayBorders.style;
overlay.style['borderColor']=obOverlayBorders.color;
overlay.style['borderTopWidth']=obOverlayBorders.top+"px";
overlay.style['borderLeftWidth']=obOverlayBorders.left+"px";
overlay.style['borderBottomWidth']=obOverlayBorders.bottom+"px";
overlay.style['borderRightWidth']=obOverlayBorders.right+"px";
overlay.style['marginTop']=obOverlayMargins.top+"px";
overlay.style['marginLeft']=obOverlayMargins.left+"px";
overlay.style['marginBottom']=obOverlayMargins.bottom+"px";
overlay.style['marginRight']=obOverlayMargins.right+"px";
overlay.style.zIndex="9997";
if(PBoxDetect.strBrowser=="Firefox"){
if(!PBoxHelpers.HasClassName(overlay,"pbox_UsePNGForBackground"))
overlay.className+=" pbox_UsePNGForBackground";}else{
if(!PBoxHelpers.HasClassName(overlay,"pbox_UseOpacityForBackground"))
overlay.className+=" pbox_UseOpacityForBackground";}
pbox.style.zIndex="9998";
if(iframe){
iframe.style.zIndex="9999";}},
OnResize:function(){
PicnikBox.SetStyles();
var size=PBoxHelpers.GetViewportSize();
var obPicnikBorders=!PicnikBox._fExpanded?PicnikBox._obPicnikBorders:PicnikBox._obNoBorders;
var obPicnikMargins=!PicnikBox._fExpanded?PicnikBox._obPicnikMargins:PicnikBox._obNoMargins;
var obOverlayBorders=!PicnikBox._fExpanded?PicnikBox._obOverlayBorders:PicnikBox._obNoBorders;
var obOverlayMargins=!PicnikBox._fExpanded?PicnikBox._obOverlayMargins:PicnikBox._obNoMargins;
var cxPicnikBorder=obPicnikBorders.left+obPicnikBorders.right;
var cyPicnikBorder=obPicnikBorders.top+obPicnikBorders.bottom;
var cxPicnikMargin=obPicnikMargins.left+obPicnikMargins.right;
var cyPicnikMargin=obPicnikMargins.top+obPicnikMargins.bottom;
var cxOverlayBorder=obOverlayBorders.left+obOverlayBorders.right;
var cyOverlayBorder=obOverlayBorders.top+obOverlayBorders.bottom;
var cxOverlayMargin=obOverlayMargins.left+obOverlayMargins.right;
var cyOverlayMargin=obOverlayMargins.top+obOverlayMargins.bottom;
var overlay=$('pbox_overlay');
if(overlay){
var cxOverlay=size[0]-(cxOverlayMargin+cxOverlayBorder);
var cyOverlay=size[1]-(cyOverlayMargin+cyOverlayBorder);
overlay.style.width=cxOverlay+'px';
overlay.style.height=cyOverlay+'px';}
var pbox=$('pbox_picnik');
if(pbox){
var cxPBox=cxOverlay-(cxPicnikMargin+cxPicnikBorder);
var cyPBox=cyOverlay-(cyPicnikMargin+cyPicnikBorder);
pbox.style.width=cxPBox+'px';
pbox.style.height=cyPBox+'px';}},
OnPicnikClose:function(){
if(PicnikBox._obActivePBLink)
PicnikBox._obActivePBLink.deactivate();},
OnPicnikExpand:function(fExpand){
if(PicnikBox._fExpanded!=fExpand){
PicnikBox._fExpanded=fExpand;
PicnikBox.OnResize();}},
AddPicnikBoxMarkup:function(){
var elBody=document.getElementsByTagName('body')[0];
var elMeasure=document.createElement('div');
elMeasure.id='pbox_measure';
elMeasure.style.width="100%";
elMeasure.style.height="100%";
elMeasure.style.position="fixed";
elMeasure.style.left="0";
elMeasure.style.top="0";
elMeasure.style.visibility="hidden";
elMeasure.style.zIndex="-1";
elBody.appendChild(elMeasure);
var elOverlay=document.createElement('div');
elOverlay.id='pbox_overlay';
elBody.appendChild(elOverlay);
var elPicnikBox=document.createElement('div');
elPicnikBox.id='pbox_picnik';
elOverlay.appendChild(elPicnikBox);}}
function onPicnikClose(){PicnikBox.OnPicnikClose()}
function onPicnikExpand(fExpand){PicnikBox.OnPicnikExpand(fExpand)}
PBoxHelpers.ObserveEvent(window,'load',PicnikBox.OnLoad,false);
PBoxHelpers.ObserveEvent(window,'resize',PicnikBox.OnResize,false);