
if( ! window.BNY ) window.BNY = new Object();

BNY.isInList = function( str , list , cs ) {
  var RE;
  if( ! str || ! list ) return false;
  RE = new RegExp( "\\b" + str + "\\b" , cs ? "" : "i" );
  return list.search(RE) != -1;
}


BNY.getWindowWidth = function (win) {
  var doc;
  if(!win) win = self;
  doc = win.document;
  if (doc.documentElement && doc.documentElement.clientWidth) return doc.documentElement.clientWidth;
  if (win.innerWidth) {
    return ( doc.body.clientWidth && doc.body.clientWidth!=win.innerWidth ) ?
      doc.body.clientWidth : win.innerWidth;
  }
  if (doc.body.clientWidth) return doc.body.clientWidth;
  if (doc.body.offsetWidth)
    return doc.body.offsetWidth - 16;
  return 0; // = nicht gefunden
}


BNY.getOuterNode = function ( type , node ) {
  // attention: first tested node is the node itself
  // (to exclude your current one use .parentNode)
  type = typeof type != "string" ? "" : type.toLowerCase();
  if (typeof node != "object" || node == null) return null;
  if ( type == "/q" || BNY.isInList( node.nodeName , type ) ) return node;
  else {
    if (!type) type = "/q";
    return BNY.getOuterNode(type,node.parentNode);
  }
}

BNY.addStylesheet = function ( src , win ) {
    var doc = document, styles, Css, dsnMode=false;
    if( typeof win != 'undefined' ) {
        if( win.contentWindow ) doc = win.contentWindow.document;
        else doc = win.document;
    }
    if(doc.createStyleSheet) { // MSIE
        doc.createStyleSheet( src );
    }
    else { // other than MSIE
        styles = "@import url('" + src + "');";
        Css = doc.createElement('link');
        Css.rel = 'stylesheet';
        Css.href = 'data:text/css,' + escape( styles );
        // Css.setAttribute( 'rel'  , 'stylesheet' );
        // Css.setAttribute( 'type' , 'text/css' );
        // Css.setAttribute( 'href' , src );
        document.getElementsByTagName("head")[0].appendChild(Css);
    }
}


var PicSwap = new Object();

PicSwap._getBaseDiv = function ( node ) {
    var div = node;
    while( div ) {
        div = BNY.getOuterNode( 'div' , div.parentNode );
        if( div && BNY.isInList( 'PicSwapBase' , div.className ) ) break;
    }
    return div;
}

PicSwap._getBaseData = function ( node ) {
    var data = null , div = PicSwap._getBaseDiv( node );
    if( div ) data = div.PicSwapData;
    return data;
}

PicSwap.next = function ( node ) {
  var data = PicSwap._getBaseData( node );
  var max = data.srcArr.length-1 , img = data.imgNode;
  if( data.offset < max ) data.offset++;
  PicSwap.swap( node );
}

PicSwap.prev = function ( node ) {
  var data = PicSwap._getBaseData( node );
  var img = data.imgNode;
  if( data.offset > 0 ) data.offset--;
  PicSwap.swap( node );
}

PicSwap.swap = function ( node ) {
  var data = PicSwap._getBaseData( node );
  
  if( ! data.swapArr[data.offset] ){
    data.swapArr[data.offset] = new Image();
    data.swapArr[data.offset].src = data.srcArr[data.offset];
  }
  
  data.imgNode.src = data.swapArr[data.offset].src;
}

PicSwap.zoom = function ( link ) {
  /*
    document.getElementById('frnArtPicImgLink').href=picLinkAr[pici];
  */
  BNY.popUpImage( link.href , { width: 480 , height: 640 } );
  // alert( link.href );
}

PicSwap.initImg = function ( img , OPT ) {
    // OPT.amount = number of Images
    var div = null;
    if( ! OPT ) OPT = new Object();
    div = PicSwap._getBaseDiv( img );
    if( div ) {
        OPT.imgNode = img;
        OPT.offset = 0;
        OPT.srcArr  = [];
        OPT.descArr = [];
        OPT.copyArr = [];
        OPT.linkArr = [];
        OPT.swapArr = [];
        div.PicSwapData = OPT;
        PicSwap._initialize( div );
    }
}

PicSwap._initialize = function ( div ) {
    var data;
    if( typeof div.PicSwapIni == 'function' ) {
        div.PicSwapIni();
        data = div.PicSwapData;
        // TODO ...
        PicSwap.BEHELF_FUERSERSTE( div );
    }
}

// TODO ...
PicSwap.BEHELF_FUERSERSTE = function ( div ) {
    var data = div.PicSwapData;
    var max = data.srcArr.length-1;
    var copyChar;

    document.getElementById('frnArtPicDesc').innerHTML=data.descArr[data.offset];
    document.getElementById('frnArtPicMenuIndex').innerHTML='Bild '+(data.offset+1)+' von ' + (max+1);
    
    if(data.copyArr[data.offset] == ""){copyChar = "";}
    else{copyChar = "&copy;";}
    
    document.getElementById('frnBsPicCopy').innerHTML=copyChar+data.copyArr[data.offset];
    // document.getElementById('frnArtPicZoomLink').href=data.linkArr[data.offset];
    
    if(data.offset >= max){
    	document.getElementById('frnArtPicNext').className="inactive";
    }else{
        document.getElementById('frnArtPicNext').className="";
    }
    
    if(data.offset < 1){
    	document.getElementById('frnArtPicBack').className="inactive";
    }else{
        document.getElementById('frnArtPicBack').className="";
    }
    
}

