/* Javascript source file for "e-paper"
Copyright 2003 Anygraaf Oy
anygraaf@anygraaf.fi */

// simple browser check
var whichbrowser = navigator.userAgent.toLowerCase();
var isnetscape = false;
var isie = false;
var isie55up = false;

if (whichbrowser.indexOf("msie") != -1) {
  isie = true;
  if (parseInt(navigator.appVersion) > 3 && whichbrowser.indexOf("msie 5.0") != 
	    -1 && whichbrowser.indexOf("msie 4") != -1)
  {
    isie55up = true;
  }
} 
else if (whichbrowser.indexOf('mozilla')!=-1) {
  isnetscape = true;
}
else if (whichbrowser.indexOf('opera')!=-1) {
  isie = true;
}

var arrpagenumbers =new Array();
arrpagenumbers[0] = "";
// handle spreads in the the paper
function missingpages(pagenumbers) {
  arrpagenumbers = pagenumbers.split(","); // split into pages  
}

// check if the current number is in a spread
// things to check: section navigation, page navigation, <> navigation and thumbnail navigation
function checkspread(currentnumber) {
 
  var blnisspread = false;
  var numcounter; 

  if (arrpagenumbers[0].length > 0) { // we have spreaded pages
    for (numcounter=0; numcounter < arrpagenumbers.length; numcounter++) { // loop the pagearray
      if (currentnumber == arrpagenumbers[numcounter]) { // currentpage is a spread number 
        blnisspread = true;
		break;
      }
    }
  }
  return blnisspread;

}

// init page
function pageinit(noofpages,currentpage,createpagenum,pagenavpages,sectiondata,unlinkedcoords) {

  // create page navigation for the current page if we have a higher number that we want to show than 0
  if (pagenavpages > 0) {
	createpagenav(noofpages,currentpage,pagenavpages);
  }
  // create section navigation if chosen = sectiondata != ''
  if (sectiondata.length > 0) {
    createsectionnav(sectiondata);
  }
  // show page number layer 
  if (createpagenum.length > 0) {
    showpagenumber();
  }
  // make menu stay in place
  if (document.getElementById('topmenulayer') && self.name != "searchwin") { // we have a top menu
    setInterval('makeStatic()',100);
  }
  // mark the unlinked images
  if (unlinkedcoords.length > 0) { // we have coordinates
    markunlinkedpics(unlinkedcoords);
  }
  // resize thumb layer to the same height as the main pic
 // if (document.getElementById(thumblayer) && thumblayer.length > 0) { // we have a thumbslayer
   // document.getElementById(thumblayer).style.height = parseInt(document.pageimg.height);
  //}
}

// show pagenumber layer at the left top position of the imagemap
function showpagenumber() {
  var mapoffsetx = 2;
  var mapoffsety = 4;
  var pagenumlayer = document.getElementById('pagenumberid');
  var pagenumlayerstyle;
  
  var mapPos = getMapCoords('pageimg');
  var pagepicLeft = mapPos.x;
  var pagepicTop = mapPos.y;

  if (pagenumlayer) { // there is a page number id found on the html page
    pagenumlayerstyle = pagenumlayer.style;
    pagenumlayerstyle.top = (pagepicTop+mapoffsety) + 'px';
    pagenumlayerstyle.left = (pagepicLeft+mapoffsetx)  + 'px';
    pagenumlayerstyle.visibility = 'visible';
  }
  else { // no page number id found
   // alert('Page number id (\'pagenumberid\') not found on page, but was called in pageinit function (third parameter should be empty = \'\' if no page number should be shown)');
  }
}

// replace encoded text with readable text
function replaceencodedtext(textstring) {
  textstring = textstring.replace(/##39##/gi,"\'"); // insert '
  textstring = textstring.replace(/##34##/gi,"\""); // insert "
  return textstring;
}

// remove possible childnodes from object
function removeallchildnodes(currentobj) {
  while(currentobj.childNodes.length > 0) {
    var oChild=currentobj.childNodes[0];
    currentobj.removeChild(oChild);
  }
}

// append a new text node to the text to show
function appendtextnode(parent,currenttext) {
  parent.appendChild(document.createTextNode(''));
  parent.lastChild.data= currenttext;
}

// create navigation html elements
function inserthrefelement(hrefelement,nextelement,hrefstring,linktext,parentnavelement) {
	hrefelement[nextelement] = hrefelement[0].cloneNode(true);
    hrefelement[nextelement].href = hrefstring;
	parentnavelement.appendChild(hrefelement[nextelement]);
	hrefelement[nextelement].lastChild.data = linktext;
}

//create page navigation for the current page
function createsectionnav(sectiondata) {
  
  var arrsectionparts = sectiondata.split("#"); // split into section parts
  var arrsectiondetails = new Array();
  var sectioncounter;
  var sectiondatacounter;
  var sectiontext = '';
  var sectionnavid = document.getElementById('sectionnavid');
  var sectionahrefelement;
  var secondsecpagetext = '';

  if (sectionnavid) {  // we have section navigation id on html page
    removeallchildnodes(sectionnavid);
    for (sectioncounter=0; sectioncounter < arrsectionparts.length; sectioncounter++) { // loop the sections
	  arrsectiondetails = arrsectionparts[sectioncounter].split(":"); // section data
	  if (arrsectiondetails[1] == arrsectiondetails[0]) { //check if the section is more than 1 page
	    secondsecpagetext = '';
	  }
	  else {
	    secondsecpagetext = '-'+arrsectiondetails[1];
	  }
	    sectiontext = arrsectiondetails[2]+' ('+arrsectiondetails[0]+secondsecpagetext+')';
	    sectionahrefelement = document.createElement('A');
	    sectionahrefelement.className = 'sectionnavlink';
		if (checkspread(arrsectiondetails[0]) == true) { // check if the current page is a right side spread number
		  --arrsectiondetails[0];
		} 
	    sectionahrefelement.setAttribute('href','page'+arrsectiondetails[0]+'.htm');
	    sectionnavid.appendChild(sectionahrefelement);
	    appendtextnode(sectionahrefelement,sectiontext);
	    //sectionnavid.appendChild(document.createElement('BR')); 
	  }
  }
  else { // no section nav element found
   // alert('Section navigation id (\'sectionnavid\') not found on page, but was called in pageinit function (fifth parameter should be empty = \'\' if no section navigation should be shown) ');
  }
}

// create page thumbnail navigation
function createpagethumbs(thumbwidth,thumbheight,allpages,thumbslayer,orientation) {
  var pagecounter;
  var thumbnaildiv = document.getElementById(thumbslayer);
  var htmltext;
  var tempnumber; // used to keep track on spread pages

  if (thumbwidth<1 || !(parseInt(thumbwidth))) {
    thumbnaildiv.style.visibility = 'hidden';
    thumbnaildiv.style.height = 'auto';
    thumbnaildiv.style.width = 'auto';
  }
  else {
	if (orientation == 'horizontal') {
      thumbnaildiv.style.height = parseInt(thumbheight)+45;
      htmltext = '<table id=pagethumbtableid cellpadding=2 cellspacing=0><tr>';
	}
	else {
      thumbnaildiv.style.width = parseInt(thumbwidth)+40;
      htmltext = '<table id=pagethumbtableid cellpadding=4 cellspacing=0 width='+thumbwidth+'>';
	}
	for (pagecounter=1;pagecounter<=allpages;pagecounter++) {
      tempnumber = pagecounter;
  	  if (checkspread(tempnumber) == true) { // check if the current page is a right side spread number
	    --tempnumber;
	  }  
  	  if (orientation == 'horizontal') {
        htmltext = htmltext + ('<td><a class="pagethumblink" href="page'+tempnumber+'.htm">Page '+pagecounter+'<br><img class="pagethumbpic" width='+thumbwidth+' height='+thumbheight+' src="pagethumb'+pagecounter+'.jpg" vspace=3 alt="Page '+pagecounter+'" border=0></a></td>');
	  }
	  else {
		htmltext = htmltext + ('<tr><td><a class="pagethumblink" href="page'+tempnumber+'.htm">Page '+pagecounter+'<br><img class="pagethumbpic" width='+thumbwidth+' height='+thumbheight+' src="pagethumb'+pagecounter+'.jpg" vspace=3 alt="Page '+pagecounter+'" border=0></a></td></tr>');
	  }
    }
	if (orientation == 'horizontal') {
      htmltext = htmltext + '</tr>';
	}
    htmltext = htmltext + '</table>';
	document.write(htmltext);
  }
}

// move layer so that the current page thumb is at the left of the visible layer section
function movethumbs(id,currentpage,thumbwidth,thumbheight,orientation){
  var thumbspace;

  if (orientation == 'horizontal') {
    thumbspace = parseInt(thumbwidth)+6; // thumbwidth = width of thumbnail + 6 (vspace*2)
    var offset = thumbspace*currentpage; 
  }
  else {
    var thumbspace = parseInt(thumbheight)+28;
    var offset = thumbspace*currentpage+20; 
  }
  
  if (currentpage > 1) {
    if (typeof window.scrollLeft != 'undefined'){ // for example netscape 6 still don't support scrollleft on elements
    }
    else {
      if (orientation == 'horizontal') {
        document.getElementById(id).scrollLeft= offset;
      }
      else {
        document.getElementById(id).scrollTop = offset;
      }
    }
  }
}

//create page navigation for the current page
function createpagenav(allpages,thispage,pagenavnumber) {

  var leftarrowelement = document.getElementById('leftpagenavid');
  var rightarrowelement = document.getElementById('rightpagenavid');
  var pagenavelement = document.getElementById('pagenavid');
  var pagethumbtr = document.getElementById('pagethumbtrid');
  var fontelement = document.createElement('FONT');
  var pagecounter;
  var nextahrefelement = 0;
  var arrahrefelement = new Array();
  var maxpagestoshow = pagenavnumber; // max amount of page number to show at the same time in the nav bar.
  var pagetext;
  var currentstartnumber;
  var remainder = thispage%maxpagestoshow;
  var quotient = parseInt(thispage/maxpagestoshow);
  var makepreviousarrow = false;
  var arrowcounter;
  var newleftimage;
  var newleftlink;
  var newrightimage;
  var newrightlink;
  var newpagethumb;
  var newpagethumbtd;
  var tempnumber; // used to keep track on spread pages

  if (pagenavelement) { // we have the page navigation in the html page

      // create left and right arrow if needed
      if (thispage > 1) { // left arrow
        removeallchildnodes(leftarrowelement);
        var newleftimage = document.createElement('img');
        newleftimage.src = '../epaperscript/bl_leftarrow.gif';
        newleftimage.id = 'leftarrowimage';
        newleftimage.border = '0';
        newleftimage.vspace = '0';
        newleftimage.align = 'absmiddle';
		newleftlink = document.createElement('a');

		      tempnumber = thispage-1;
  	  if (checkspread(tempnumber) == true) { // check if the current page is a right side spread number
	    --tempnumber;
	  }  

        newleftlink.href = 'page'+parseInt(tempnumber)+'.htm';
        newleftlink.appendChild(newleftimage);
		leftarrowelement.appendChild(newleftlink);
      }
	  if (thispage < allpages) { // right arrow
        removeallchildnodes(rightarrowelement);
        var newrightimage = document.createElement('img');
        newrightimage.src = '../epaperscript/bl_rightarrow.gif';
        newrightimage.id = 'rightarrowimage';
        newrightimage.border = '0';
        newrightimage.vspace = '0';
        newrightimage.align = 'absmiddle';
        newrightlink = document.createElement('a');

				      tempnumber = thispage+1;
  	  if (checkspread(tempnumber) == true) { // check if the current page is a right side spread number
	    ++tempnumber;
	  }  

        newrightlink.href = 'page'+parseInt(tempnumber)+'.htm';
        newrightlink.appendChild(newrightimage);
		rightarrowelement.appendChild(newrightlink);
	  }

      removeallchildnodes(pagenavelement);
	  // get the pagestart for the current navigation bar
  	  if (thispage <= maxpagestoshow) {
		currentstartnumber = 1;
	  }
	  else if (remainder != 0) {
		currentstartnumber = quotient+1;
	  }
	  else {
		currentstartnumber = quotient;
	  }
	  pagestartcount = (currentstartnumber*maxpagestoshow+1)-maxpagestoshow;

	  // create the navigation bar
	  for (pagecounter=pagestartcount;pagecounter<=allpages;pagecounter++) { // we have created all visible page links

		if (pagecounter > maxpagestoshow*currentstartnumber) { // we have links left not shown 
			// insert link to the next page
		   // appendtextnode(pagenavelement,' ');
		   
	        tempnumber = thispage+1; // check spread
  	        if (checkspread(tempnumber) == true) { // check if the current page is a right side spread number
	          ++tempnumber;
	        }  

			inserthrefelement(arrahrefelement,nextahrefelement,'page'+parseInt(tempnumber)+'.htm','>',pagenavelement);
			appendtextnode(pagenavelement,' ');
			nextahrefelement++;
			// create a maxpagestoshow skip link '>>'

	        tempnumber = pagecounter; // check spread
  	        if (checkspread(tempnumber) == true) { // check if the current page is a right side spread number
	          --tempnumber;
			  if (thispage == tempnumber) { // we are at the current spread - move to next available page
			    tempnumber = tempnumber+2
	          } 
	        }  


			inserthrefelement(arrahrefelement,nextahrefelement,'page'+tempnumber+'.htm','>>',pagenavelement);
			appendtextnode(pagenavelement,' ');
			nextahrefelement++;
			// create a link to the last page

	        tempnumber = allpages; // check spread
  	        if (checkspread(tempnumber) == true) { // check if the current page is a right side spread number
	          --tempnumber;
	        }  

			inserthrefelement(arrahrefelement,nextahrefelement,'page'+parseInt(tempnumber)+'.htm','Last',pagenavelement);
			pagecounter = allpages+1;
		}
		else { // create the visible page links
			if (pagecounter ==  pagestartcount && allpages > 1){ // beginning
				if (thispage != '1') { // insert "<" if we are not on the first page
				  makepreviousarrow = true;
				}
				if (thispage > maxpagestoshow)	 { // "start" page 
					pagetext = 'Start';
					currentnumber = 1;
				}
				else if (pagecounter != thispage) { // this page - no link, just text
					pagetext = pagecounter;
					currentnumber = pagecounter;
				}
				else { // create dummy
					pagetext = ' ';
					currentnumber = pagecounter;
				}
				if (makepreviousarrow == true && pagetext != 'First') {
					// we create the first href element with the previous page link
					arrahrefelement[0] = document.createElement('A');
					arrahrefelement[0].className = 'pagenavlink' 
			
	                tempnumber = thispage-1; // check spread
  	                if (checkspread(tempnumber) == true) { // check if the current page is a right side spread number
	                  --tempnumber;
	                }  

					//arrahrefelement[0].setAttribute('href','page'+(thispage-1)+'.htm');
					arrahrefelement[0].setAttribute('href','page'+tempnumber+'.htm');
					pagenavelement.appendChild(arrahrefelement[0]);
					appendtextnode(arrahrefelement[0],'<');
					appendtextnode(pagenavelement,' ');
					nextahrefelement++;
					// we create the page number link

					tempnumber = currentnumber; // check spread
  	                if (checkspread(tempnumber) == true) { // check if the current page is a right side spread number
	                  --tempnumber;
	               }  

					inserthrefelement(arrahrefelement,nextahrefelement,'page'+tempnumber+'.htm',pagetext,pagenavelement);
					appendtextnode(pagenavelement,' ');
					nextahrefelement++;
				}
				else {
					// we create the first href element with page number link
					arrahrefelement[0] = document.createElement('A');
					arrahrefelement[0].className = 'pagenavlink' 

					tempnumber = currentnumber; // check spread
  	                if (checkspread(tempnumber) == true) { // check if the current page is a right side spread number
	                  --tempnumber;
	                } 

					arrahrefelement[0].setAttribute('href','page'+tempnumber+'.htm');
					pagenavelement.appendChild(arrahrefelement[0]);
					appendtextnode(arrahrefelement[0],pagetext);
					appendtextnode(pagenavelement,' ');
					nextahrefelement++;
				}
				if (pagetext == 'First') { // create a maxpagestoshow skip link '<<'

					tempnumber = pagestartcount-maxpagestoshow; // check spread
  	                if (checkspread(tempnumber) == true) { // check if the current page is a right side spread number
	                  --tempnumber;
	                } 

					//inserthrefelement(arrahrefelement,nextahrefelement,'page'+(pagestartcount-maxpagestoshow)+'.htm','<<',pagenavelement);
					inserthrefelement(arrahrefelement,nextahrefelement,'page'+tempnumber+'.htm','<<',pagenavelement);
					appendtextnode(pagenavelement,' ');
					nextahrefelement++;
					// we create element with the previous page link

				    tempnumber = thispage-1; // check spread
  	                if (checkspread(tempnumber) == true) { // check if the current page is a right side spread number
	                  --tempnumber;
	                } 

					//inserthrefelement(arrahrefelement,nextahrefelement,'page'+(thispage-1)+'.htm','<',pagenavelement);
					inserthrefelement(arrahrefelement,nextahrefelement,'page'+tempnumber+'.htm','<',pagenavelement);
					appendtextnode(pagenavelement,' ');
					nextahrefelement++;
				}
		  }
		  if (pagecounter == thispage) { // current page, no link, just text
				pagenavelement.appendChild(fontelement); 
				fontelement.className = 'pagenavfont' 
				appendtextnode(fontelement,pagecounter);
				appendtextnode(pagenavelement,' ');
		  }
		  if (pagecounter == allpages && allpages > 1 && thispage < (allpages-maxpagestoshow)) { // last page to show

		  		    tempnumber = allpages; // check spread
  	                if (checkspread(tempnumber) == true) { // check if the current page is a right side spread number
	                  --tempnumber;
	                } 

				inserthrefelement(arrahrefelement,nextahrefelement,'page'+tempnumber+'.htm','Last',pagenavelement);
				appendtextnode(fontelement,pagecounter);
				nextahrefelement++;
		  }
		  else if (pagecounter > 1 && pagecounter != thispage) { // all other pages

		  		  		    tempnumber = pagecounter; // check spread
  	                if (checkspread(tempnumber) == true) { // check if the current page is a right side spread number
	                  --tempnumber;
	                } 

				inserthrefelement(arrahrefelement,nextahrefelement,'page'+tempnumber+'.htm',pagecounter,pagenavelement);
				appendtextnode(pagenavelement,' ');
				nextahrefelement++;
		  }
		}


	  }
	  // create a next page ">" link if needed  
	  if (thispage != allpages && (pagecounter <= maxpagestoshow*currentstartnumber || allpages <= maxpagestoshow)) {
		  appendtextnode(pagenavelement,' ');

		    		  		    tempnumber = thispage+1; // check spread
  	                if (checkspread(tempnumber) == true) { // check if the current page is a right side spread number
	                 // if (tempnumber+1 <= allpages) {
                         ++tempnumber;

		 

	                  //}
					} 
 inserthrefelement(arrahrefelement,nextahrefelement,'page'+parseInt(thispage+1)+'.htm','>',pagenavelement);
		  appendtextnode(pagenavelement,' ');

		  nextahrefelement++;
	  }
	  // a short error message if there is anything wrong
	  if (thispage > allpages) {
		pagenavelement.appendChild(fontelement); 
		fontelement.className = 'pagenavlink' 
		appendtextnode(fontelement,'ERROR IN HTML FILE: The current page number can not be larger than the total amount of pages!');
	  }

  }
  else { // no page nav element found
    alert('Page navigation id (\'pagenavid\') not found on page, but was called in pageinit function (fourth parameter should be 0 (a zero) if no page navigation should be shown)');
  }
}

// get the top and left position of the imagemap
function getMapCoords(mapName) {
  var mapElement = document.getElementById(mapName);
  var coords = {x:0 ,y:0};
  do {coords.x += parseInt(mapElement.offsetLeft);
      coords.y += parseInt(mapElement.offsetTop);
        mapElement = mapElement.offsetParent;
  } while (mapElement);
  return coords
}

// show the calling text part of the text box
function showtextpart(textpartTR, textpartTD, text) {

  var newtextnode;
  var paragraphelement;
  var linebreakelement;
  var paragraphpos = text.toLowerCase().indexOf("<p>");
  var linebreakpos = text.toLowerCase().indexOf("<br>");
  var newtextnode;
  var charcounter;
  var tempstring = "";
  var foundspecialchars = false;
  var texttoadd; 

  // remove possible childnodes from newstext object
  removeallchildnodes(textpartTD);
  

  // replace encoded text with readable text
  text = replaceencodedtext(text);

	// insert html elements
  for (charcounter=0; charcounter < text.length; charcounter++) {
    tempstring = tempstring+text.charAt(charcounter);
		if (tempstring.toLowerCase().indexOf("<p>") > -1) {
      texttoadd = tempstring.substring(0, tempstring.length-3);
			if (texttoadd.length > 0) {
				appendtextnode(textpartTD,texttoadd);
			}
			textpartTD.appendChild(document.createElement('P')); 
			tempstring = "";
			foundspecialchars = true;
		}
		else if (tempstring.toLowerCase().indexOf("<br>") > -1) {
          texttoadd = tempstring.substring(0, tempstring.length-4);
		  if (texttoadd.length > 0) {
  		    appendtextnode(textpartTD,texttoadd);
		  }
		  textpartTD.appendChild(document.createElement('BR')); 
		  tempstring = "";
		  foundspecialchars = true;
		}
	}

  if (foundspecialchars == false) // no special characters have been found
  {
  	appendtextnode(textpartTD,text);
  }
  else if (tempstring.length > 0)	{
		appendtextnode(textpartTD,tempstring);
  }

  textpartTR.style.display=''; // show table row
}

// gets the onMouseOver text related to the specific part of the page
// and puts it into the text box
function gettext(sectionheadtxt,mainheadtxt,newstxt,photocredtxt) {

  var sectionheadfontelement = document.getElementById('sectionheadfont');
  var sectionheadTDleftelement = document.getElementById('sectionheadtdleft');
  var sectionheadTDelement = document.getElementById('sectionheadtd');
  var sectionheadTRelement = document.getElementById('sectionheadtr');
  var mainheadTDelement = document.getElementById('mainheadtd');
  var mainheadTRelement = document.getElementById('mainheadtr');
  var phototextTDelement = document.getElementById('phototexttd');
  var phototextTRelement = document.getElementById('phototexttr');
  var newstextTDelement = document.getElementById('newstexttd');
  var newstextTRelement = document.getElementById('newstexttr');
  var textElementstyle = document.getElementById('headertext').style;
  var maxtextwidth = '175px';

  textElementstyle.left = 0;
  textElementstyle.top = 0;
  textElementstyle.width = maxtextwidth;
  textElementstyle.height = 'auto';
  textElementstyle.overflow = 'hidden';
  sectionheadTDleftelement.style.width= maxtextwidth;

  // show the different text parts
  if (sectionheadtxt.length > 0) {
    showtextpart(sectionheadTRelement, sectionheadTDelement, sectionheadtxt);
  }
  else {
    sectionheadTRelement.style.display='none'; // hide table row
  }
  if (mainheadtxt.length > 0) {
    showtextpart(mainheadTRelement, mainheadTDelement, mainheadtxt);
  }
  else {
    mainheadTRelement.style.display='none';
  }
  if (photocredtxt.length > 0) {
    showtextpart(phototextTRelement, phototextTDelement, photocredtxt);
  }
  else {
    phototextTRelement.style.display='none';
  }
  if (newstxt.length > 0) {
    showtextpart(newstextTRelement, newstextTDelement, newstxt);
  }
  else {
    newstextTRelement.style.display='none';
  }
  // call showtext on MouseOver to get IE to move the text before mousemove 
  if (isie == true) {
    showtext(event);
  }
}

// moves and shows the news header layer on onMouseMove 
function showtext(catchedevent) {

  var mapPos = getMapCoords('pageimg');
  var imagemapoffsetX = mapPos.x;
  var imagemapoffsetY = mapPos.y;
  var offsetvalueX;
  var offsetvalueY;
  var mouseoffsetX;
  var mouseoffsetY;
  var defaultoffsetvalueX = 20;
  var defaultoffsetvalueY = 20;
  var textElement = document.getElementById('headertext'); 
  var textareawidth = parseInt(textElement.offsetWidth);
  var textareaheight = parseInt(textElement.offsetHeight);
  var imagemapwidth = parseInt(document.pageimg.width);
  var imagemapheight = parseInt(document.pageimg.height);
  var screenwidth;
  var screenheight;

  if (isnetscape == true) {
    mouseoffsetX = catchedevent.pageX; 
    mouseoffsetY = catchedevent.pageY;
    screenwidth = window.innerWidth;
    screenheight = window.innerWidth;
  }
  else {
    screenwidth = document.body.clientWidth;
	screenheight = document.body.clientHeight;
    mouseoffsetX = catchedevent.x + window.document.body.scrollLeft;
	mouseoffsetY = catchedevent.y + window.document.body.scrollTop;
  }

  // offsetvalues used for moving the text a little bit away from the mouse pointer 
  // and on a good position on the screen. Set the text box layer at the right position
  if (mouseoffsetX > imagemapoffsetX + (imagemapwidth-textareawidth-defaultoffsetvalueX) || 
	  mouseoffsetX > screenwidth-textareawidth-defaultoffsetvalueX) { 
    textElement.style.left = parseInt(mouseoffsetX - textareawidth - defaultoffsetvalueX) + 'px';
  }
  else {
    textElement.style.left = parseInt(mouseoffsetX + defaultoffsetvalueX) + 'px';
  }
 // if (mouseoffsetY+defaultoffsetvalueY+textareaheight+imagemapoffsetY > imagemapoffsetY+imagemapheight) {
  if (mouseoffsetY > imagemapoffsetY + (imagemapheight-textareaheight-defaultoffsetvalueY)) { 

    textElement.style.top = parseInt(mouseoffsetY - textareaheight - defaultoffsetvalueY) + 'px';
  }
  else {
	textElement.style.top = parseInt(mouseoffsetY + defaultoffsetvalueY) + 'px';
  }

  // show the text box when it is moved to the right position
  textElement.style.visibility = 'visible';
}

// marks the selected area on the page with a border
function showborders(left, top, right, bottom) {
  var mapPos = getMapCoords('pageimg');
  var pagepicLeft = mapPos.x;
  var pagepicTop = mapPos.y;
  var markLeft = parseInt(left)+parseInt(pagepicLeft);
  var markTop = parseInt(top)+parseInt(pagepicTop);
  var markHeight = parseInt(bottom)-parseInt(top);
  var markWidth = parseInt(right)-parseInt(left);
  var vertObj;
  var vertCount;
  var horCount;
  var smallWidthHeight;
  var bottomhory;
  var borderWidth = 1;
  var currentborderstyle = 'dotted';

  // set border style to work with the current browser. 
  // Dashed border only works with IE6 or higher for IE browsers
  if (isie == true) {
    smallWidthHeight = 3;
	bottomhory = parseInt(markHeight+markTop-borderWidth+1);
    if (isie55up == false){
      currentborderstyle = 'double';
    }
  }
  else {
    smallWidthHeight = 1;
	bottomhory = parseInt(markHeight+markTop-borderWidth+2);
  }

  // handle horizontal picture frame lines
  for (horCount = 1; horCount <= 2; horCount++) {
    if (horCount == 1) { // 1 = topline, 2 = bottomline
      horObj = document.getElementById('topborder').style;      
      horObj.top = markTop+'px';
    }
    else {
      horObj = document.getElementById('bottomborder').style; 
      horObj.top = bottomhory+'px';
    }
    horObj.left = markLeft+'px';
    horObj.width = markWidth;
    horObj.height = smallWidthHeight;
    horObj.overflow = 'hidden';
    horObj.borderWidth = borderWidth;
    horObj.borderStyle = currentborderstyle;
    horObj.visibility = 'visible';
  }
  // handle vertical picture frame lines
  var VertBorderTop;
  for (vertCount = 1; vertCount <= 2; vertCount++) {
    if (vertCount == 1) { // 1 = leftopborder, 2 = rightopborder
      vertObj = document.getElementById('leftborder').style;      
      vertObj.left = markLeft+'px';
    }
    else {
      vertObj = document.getElementById('rightborder').style; 
      vertObj.left = parseInt(markLeft+markWidth-smallWidthHeight+1)+'px';
    }
    vertObj.top = markTop+'px';
    vertObj.width = smallWidthHeight;
    vertObj.height = parseInt(markHeight+borderWidth+1);
    vertObj.borderWidth = borderWidth;
    vertObj.overflow = 'hidden';
    vertObj.borderStyle = currentborderstyle;
    vertObj.visibility = 'visible';
  }
}

// hides the text related to the specific part of the page
function notext() {
  document.getElementById('headertext').style.visibility = 'hidden';
  noborders();
}

// hides a layer
function hidelayer(layer) {
  document.getElementById(layer).style.visibility = 'hidden';
}

// removes the border created by the onMouseOver
function noborders() {
  document.getElementById('topborder').style.visibility = 'hidden';
  document.getElementById('bottomborder').style.visibility = 'hidden';
  document.getElementById('rightborder').style.visibility = 'hidden';
  document.getElementById('leftborder').style.visibility = 'hidden';
}

// global variable for use when checking for open searchwindow
var newsearchwin;

// open a search in a search window
function opensearchwin(query,winwidth,winheight,winname) {

  var winopts;
  var winxpos;
  var winypos;
  var screenoffsets = 10;

  if (query.length < 1)  {
    alert('Please enter a search word.');
    return false; // cancel form submission
  }
  else {
    if(!newsearchwin || newsearchwin.closed) {           
      winxpos = screen.width - winwidth - screenoffsets -10;
      winypos = screenoffsets;
      winopts = 'width='+winwidth+',height='+winheight+',resizable=1,scrollbars=1,status=0,left='+winxpos+',top='+winypos;
  	  newsearchwin = window.open('',winname,winopts);
    }
    newsearchwin.focus();
  }
 
}

// go to the specific page
function changepage(maxpages,pagenum) {
  var isok = false;

  if (isPosInteger(pagenum) == true) {
	if (pagenum <= maxpages && pagenum > 0) {
	  isok = true;
	}
  }

  if (isok == true) {

	tempnumber = pagenum; // check spread
  	if (checkspread(tempnumber) == true) { // check if the current page is a right side spread number
	  --tempnumber;
	}
	             
    self.location.href='page'+tempnumber+'.htm';
    return false;
  }
  else {
    alert('Page number has to be between 1 and '+maxpages+'.');
    return false;
  }
}

var timer = ''; // timer for focus 
var lastcaller; // keeps tracks on the latest caller

// do the windows focusing
function dofocus(prevcaller) { 
  if (prevcaller != "query") {
    timer = setTimeout('window.focus()',0);
  }
  else if (prevcaller != "mainwindow") {
    clearTimeout(timer);
  }
}

// check if the search window is open, and give it focus if it is
function searchwinfocus(onoff, timer, time, caller) {

  if (onoff == "off") {
    clearTimeout(timer);
  }
  else {
    timer = setTimeout('dofocus(lastcaller)', time);
  }
  lastcaller = caller;
}

// Check if the value is a postive integer
function isPosInteger(inputVal) {
  inputStr = inputVal.toString()
  for (var i=0; i<inputStr.length; i++) {
    var oneChar = inputStr.charAt(i)
    if (oneChar < "0" || oneChar > "9") {
      return false
    }
  }
  return true
} 

// Open menu item
function showhidelayer(chosenlayer) {

  if (document.getElementById(chosenlayer).style.visibility == 'hidden') {
    document.getElementById(chosenlayer).style.visibility = 'visible';  
  }
  else {
    document.getElementById(chosenlayer).style.visibility = 'hidden';
  }
} 

// Put menu at top
function makeStatic() {
  var topposition;

  if (typeof window.pageXOffset != 'undefined'){
    topposition = window.pageYOffset;
  }
  else {
    topposition = window.document.body.scrollTop;
  }
  document.getElementById('topmenulayer').style.top = topposition + 'px';
}

//open image page from article page
function openimagepage(picname) {
  var picnum;
  var piclayer;
  var newimage;
  var picelement;
  var picturediv;
  var topposition;
  var leftposition;

  piclayer = document.getElementById("largepiclayer");
  picturediv = document.getElementById("largepic");

  picturediv.innerHTML = "<img class=photo border=0 src="+picname+">"; 
  
  if (typeof window.pageXOffset != 'undefined'){
    topposition = window.pageYOffset;
    leftposition = window.pageXOffset;
  }
  else {
    topposition = window.document.body.scrollTop;
    leftposition = window.document.body.scrollLeft;
  }

  topposition = topposition + 10;
  leftposition = leftposition + 10;

  piclayer.style.visibility = "visible";
  piclayer.style.left = leftposition + 'px';
  piclayer.style.top= topposition + 'px';
}

// open palaute window
function avaaIkkuna(URL, width, height, scroll, resize, TITLE) {
    if (URL != "") { 
		// oletusarvoja
		if (width == ""){
			width = 400
			}
		if (height == ""){
			height = 400
			}
		if (scroll == "" || scroll == null ) {
			scroll = 1
			}
	    	if (resize == "" || resize == null ) {
			resize = 1
			}
		if (TITLE == ""){
			TITLE = 'TESTI'
			}
		mainWinParams = 'toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=' + scroll + ',resizable=' + resize + ',width=' + width + ',height=' + height + ',left=10, top=10';
		var mainWindow = window.open(URL, TITLE, mainWinParams);
    }
    //return false;
}

// create to see if there is any info box (tietolaatikko) text on the page, if not then make the table invisible
function checktietolaatikko(laatikko,emptytietolaatikkotd) {

//  var boxtable  = document.getElementById('tietolaatikkotableid');
//  var boxtd = document.getElementById('tietolaatikkotdid');
 // var boxtextid = document.getElementById(laatikko);
  //var childcount = boxtextid.childNodes.length;
  //var childcounter;

 /* for (childcounter=0; childcounter < childcount; childcounter++) { // loop the children

if (boxtd.childNodes(childcounter).childType == 3) { // text node

  alert(boxtd.childNodes(childcounter).text);

}
	}


 // if (document.getElementById(laatikkolayer) != null) { 

	//  alert('inside');
      //  boxtd.className = "emptytietolaatikkotd";
//  } */

}


// Stuff for debug version below

// image already is linked to an article 
function picislinked(picname, left, top, right, bottom) {
 alert('This image is already linked to an article');	
}

// insert a border layer element
function insertlayerelement(parentelement, thislayerid) {
  var newlayerelement;

  newlayerelement = parentelement.cloneNode(true);
  newlayerelement.id = thislayerid;
//  document.body.insertBefore(newlayerelement, document.body.lastChild);
document.body.appendChild(newlayerelement);
//parentelement.appendChild(newlayerelement);
  newlayerelement.style.visibility = 'hidden';
  return newlayerelement;
}

var currentpic = ''; // current picture file name
var currentarticle = ''; // current article file name
var previouspicdebugid = ''; // unique number for previous picture caller
var previousarticledebugid = ''; // unique number for previous article caller
var mainarticlemarked = ''; // check to see if the main article is selected or not
var arrarticles = new Array(); // array of articles to connect to the main article
var arrpics = new Array(); // array of pictures to connect to the main article

// put a copy of the borders marking the selection selected
function putborders(callerfile, callkind, left, top, right, bottom) {

  var mapPos = getMapCoords('pageimg');
  var pagepicLeft = mapPos.x;
  var pagepicTop = mapPos.y;
  var markLeft = parseInt(left)+parseInt(pagepicLeft);
  var markTop = parseInt(top)+parseInt(pagepicTop);
  var markHeight = parseInt(bottom)-parseInt(top);
  var markWidth = parseInt(right)-parseInt(left);
  var vertObj;
  var horBordObj;
  var vertBordCount;
  var horCount;
  var smallWidthHeight;
  var bottomhory;
  var borderWidth = 1;
  var currentborderstyle = 'dotted';
  var currentidstring = ""+left+""+top+""+right+""+bottom;
  var horbordlayer = document.getElementById('bottomborder');
  var vertbordlayer = document.getElementById('leftborder');
  var debugpictext = document.getElementById('debugpictextid');
  var debugarticletext = document.getElementById('debugarticletextid');
  var templayer;
  var layercount;
  var templayername;
  var markedopiccolor = '#00FF00';
  var markedarticlecolor = '#00FF00';
  var markedmainarticlecolor = '#0000FF';
  var arraycounter;

  var temphortoplayer;
  var temphorbottomlayer;
  var tempvertleftlayer;
  var tempvertrightlayer;
  var tempdebugarticletext;
  var tempdebugpictext;

  if (document.getElementById(currentidstring+'v1')) { // insert new layers if we do not already have created them
    tempvertleftlayer = document.getElementById(currentidstring+'v1');
    tempvertrightlayer = document.getElementById(currentidstring+'v2');
    temphortoplayer = document.getElementById(currentidstring+'h1');
    temphorbottomlayer = document.getElementById(currentidstring+'h2');
    tempdebugarticletext = document.getElementById(currentidstring+'arttext');
    tempdebugpictext = document.getElementById(currentidstring+'pictext');
    tempdebugarticletext.style.zIndex = 25;
	tempdebugpictext.style.zIndex = 25;
    tempvertleftlayer.style.zIndex = 20;
    tempvertrightlayer.style.zIndex = 20;
    temphortoplayer.style.zIndex = 20;
    temphorbottomlayer.style.zIndex = 20;
  }
  else {
    tempdebugpictext = insertlayerelement(debugpictext,currentidstring+'pictext');
    tempvertleftlayer = insertlayerelement(vertbordlayer,currentidstring+'v1');
    tempvertrightlayer = insertlayerelement(vertbordlayer,currentidstring+'v2');
    temphortoplayer = insertlayerelement(horbordlayer,currentidstring+'h1');
    temphorbottomlayer = insertlayerelement(horbordlayer,currentidstring+'h2');
    tempdebugarticletext = insertlayerelement(debugarticletext,currentidstring+'arttext');
    tempdebugarticletext.style.zIndex = 25;
	tempdebugpictext.style.zIndex = 25;
    tempvertleftlayer.style.zIndex = 20;
    tempvertrightlayer.style.zIndex = 20;
    temphortoplayer.style.zIndex = 20;
    temphorbottomlayer.style.zIndex = 20;
 //   if (callkind == 'article' && mainarticlemarked == '') { // set article to mainarticle if there is no main article selected
  	 // setdebugbordercolor(temphortoplayer, temphorbottomlayer, tempvertleftlayer, tempvertrightlayer, markedmainarticlecolor);
   // }
    //else {
  	  //setdebugbordercolor(temphortoplayer, temphorbottomlayer, tempvertleftlayer, tempvertrightlayer, markedarticlecolor);
//    }
    if (callkind == 'pic') {
  	  setdebugbordercolor(temphortoplayer, temphorbottomlayer, tempvertleftlayer, tempvertrightlayer, markedopiccolor);
    }  
  }

  // set border style to work with the current browser. 
  // Dashed border only works with IE6 or higher for IE browsers
  if (isie == true) {
	smallWidthHeight = 3;
	bottomhory = markHeight+markTop-borderWidth+1;
	if (isie55up == false){
	  currentborderstyle = 'double';
	}
  }
  else {
	smallWidthHeight = 1;
	bottomhory = markHeight+markTop-borderWidth+2;
  }

  // handle horizontal picture frame lines
  for (horCount = 1; horCount <= 2; horCount++) {
    if (horCount == 1) { // 1 = topline, 2 = bottomline
  	  horBordObj = temphortoplayer.style;
      horBordObj.top = markTop+'px';
    }
    else {
	  horBordObj = temphorbottomlayer;
  	  horBordObj.style.top = bottomhory+'px';
    }
	horBordObj.left = markLeft+'px';
	horBordObj.width = markWidth;
	horBordObj.height = smallWidthHeight;
  	horBordObj.overflow = 'hidden';
	horBordObj.borderWidth = borderWidth;
    horBordObj.borderStyle = currentborderstyle;
  }

  // handle vertical picture frame lines
  var VertBorderTop;
  for (vertCount = 1; vertCount <= 2; vertCount++) {
	if (vertCount == 1) { // 1 = leftopborder, 2 = rightopborder 
	  vertBordObj = tempvertleftlayer.style;
 	  vertBordObj.left = markLeft+'px';
	}
	else {
	  vertBordObj = tempvertrightlayer.style;
  	  vertBordObj.left = (markLeft+markWidth-smallWidthHeight+1)+'px';
	}
	vertBordObj.top = markTop+'px';
    vertBordObj.width = smallWidthHeight;
	vertBordObj.height = markHeight+borderWidth+1;
	vertBordObj.borderWidth = borderWidth;
	vertBordObj.overflow = 'hidden';
    vertBordObj.borderStyle = currentborderstyle;
  }

  // set current caller file name and hide/show current item's borders
  if (callkind == 'pic') {
    showhideborders(temphortoplayer, temphorbottomlayer, tempvertleftlayer, tempvertrightlayer, tempdebugpictext);

	if (temphortoplayer.style.visibility == 'hidden') {
      for (arraycounter = 0; arraycounter < arrpics.length; arraycounter++) { // remove pic from array
        if (arrpics[arraycounter] == callerfile) {
	      arrpics.splice(arraycounter,1);
  		  break;
        }
	  }		
	  if (document.getElementById(currentidstring+'islinkedpictext')) { // is it marked as unlinked
	    document.getElementById(currentidstring+'islinkedpictext').style.visibility = 'visible';
	  }
      currentpic  = '';
      previouspicdebugid = '';
	  tempdebugpictext.style.visibility = 'hidden';
	}
	else {
	  if (document.getElementById(currentidstring+'islinkedpictext')) { // is it marked as unlinked
	    document.getElementById(currentidstring+'islinkedpictext').style.visibility = 'hidden';
	  }
      arrpics[arrpics.length] = callerfile; // add pic to array
	  tempdebugpictext.style.top = markTop+'px';
	  tempdebugpictext.style.left = markLeft+'px';
	  tempdebugpictext.style.visibility = 'visible';
	  currentpic  = callerfile;
	  previouspicdebugid = currentidstring;
	}
  }
  else {
    showhideborders(temphortoplayer, temphorbottomlayer, tempvertleftlayer, tempvertrightlayer, tempdebugarticletext);
    if (temphortoplayer.style.visibility == 'hidden') {
      if (mainarticlemarked == callerfile) { // set article to nothing if the current main article is this one
		mainarticlemarked = '';
      }
	  else { // remove article from array
	    for (arraycounter = 0; arraycounter < arrarticles.length; arraycounter++) {
          if (arrarticles[arraycounter] == callerfile) {
			arrarticles.splice(arraycounter,1);
  		    break;
          }
		}
	  }
      currentarticle  = '';
      previousarticledebugid = '';
	  tempdebugarticletext.style.visibility = 'hidden';
	}
	else {
      if (mainarticlemarked == '') { // set article to nothing if the current main article is this one
        mainarticlemarked = callerfile;
		    tempdebugarticletext.lastChild.nodeValue = 'main article marked';
  	   // tempdebugarticletext.childNodes[0].lastChild.nodeValue = 'main article marked';
        setdebugbordercolor(temphortoplayer, temphorbottomlayer, tempvertleftlayer, tempvertrightlayer, markedmainarticlecolor);
      }
      else {
        arrarticles[arrarticles.length] = callerfile; // add article to array
		    tempdebugarticletext.lastChild.nodeValue = 'article marked';
  	  //  tempdebugarticletext.childNodes[0].lastChild.nodeValue = 'article marked';
        setdebugbordercolor(temphortoplayer, temphorbottomlayer, tempvertleftlayer, tempvertrightlayer, markedarticlecolor);
      }
	  tempdebugarticletext.style.top = markTop+'px';
	  tempdebugarticletext.style.left = markLeft+'px';
	  tempdebugarticletext.style.visibility = 'visible';
	  currentarticle  = callerfile;
      previousarticledebugid = currentidstring;
	}
  }
}

function makeconnection(debugwinname) {
  
  var confirmtext = 'Click OK to link chosen images/articles to main article.';
  var arraycount;
  var articletext = '';
  var imagetext = '';
  var winopts;
  var winxpos;
  var winypos;
  var winwidth = 400;
  var winheight = 200;
  var screenoffsets = 10;
  var arrtemp;

  if (mainarticlemarked == '') { // we do not have a main article
    alert('Please mark a main article to connect other articles and images to.');
    return false; // cancel form submission
  }
  if (arrarticles.length == 0 && arrpics.length == 0) { // no articles or pics to link to main article
    alert('Please mark at least one article or image to connect to the main article.');
    return false; // cancel form submission
  }
  else {
    if (!confirm(confirmtext)) { // cancel the connection
      return false; // cancel form submission
    }
	else { // insert picture and article values into html page
 	  for (arraycount = 0; arraycount < arrpics.length; arraycount++) { // the chosen images
        imagetext = imagetext + arrpics[arraycount];
	    if (arraycount < arrpics.length-1) { // put divider
		  imagetext = imagetext + ',';
	    }
	  }
 	  for (arraycount = 0; arraycount < arrarticles.length; arraycount++) { // the chosen articles
        articletext = articletext + arrarticles[arraycount];
	    if (arraycount < arrarticles.length-1) { // put divider
		  articletext = articletext + ',';
	    }
	  }
      document.connectform.imagearray.value  = imagetext;
      document.connectform.articlearray.value  = articletext;
      document.connectform.mainarticle.value  = mainarticlemarked;
	}

    // show connection data in a new window
    winxpos = screen.width - winwidth - screenoffsets -10;
	winypos = screenoffsets;
	winopts = 'width='+winwidth+',height='+winheight+',resizable=1,scrollbars=1,status=0,left='+winxpos+',top='+winypos;
	newdebugwin = window.open('',debugwinname,winopts);
    newdebugwin.focus();

  }

}

// set debug borders' color
function setdebugbordercolor(topbord, bottombord, leftbord, rightbord, bordcolor) {

  topbord.style.borderColor = bordcolor;
  bottombord.style.borderColor = bordcolor;
  leftbord.style.borderColor = bordcolor;
  rightbord.style.borderColor = bordcolor; 

}

// hide or show debug borders
function showhideborders(topbord, bottombord, leftbord, rightbord, textlayer) {

  if (topbord.style.visibility == 'hidden') {
    topbord.style.visibility = 'visible';
    bottombord.style.visibility = 'visible';
    leftbord.style.visibility = 'visible';
    rightbord.style.visibility = 'visible'; 
	textlayer.style.visibility = 'visible'; 
  }
  else {
    topbord.style.visibility = 'hidden';
    bottombord.style.visibility = 'hidden';
    leftbord.style.visibility = 'hidden';
    rightbord.style.visibility = 'hidden';
	textlayer.style.visibility = 'hidden'; 
  } 

}

// marked the unlinked images
function markunlinkedpics(unlinkedarray) {
  var arrpicoord = unlinkedarray.split(":"); // each picture's coordinates
  var arrtempcoords;
  var arraycounter;
  var tempislinkedleft;
  var tempislinkedright;
  var tempislinkedtop;
  var tempislinkedbottom;
  var tempislinkedtext;
  var horbordlayer = document.getElementById('bottomborder');
  var vertbordlayer = document.getElementById('leftborder');
  var islinkedpictext = document.getElementById('debugpictextid');
  var mapPos = getMapCoords('pageimg');
  var pagepicLeft = mapPos.x;
  var pagepicTop = mapPos.y;
  var markLeft;
  var markTop;
  var markHeight;
  var markWidth;
  var currentidstring;
  var smallWidthHeight;
  var bottomhory;
  var currentborderstyle; 
  var borderWidth = 1;
  var islinkedbordercolor = '#FFFF00';

  for (arraycounter = 0; arraycounter < arrpicoord.length; arraycounter++) { // mark the images
    
	arrtempcoords = arrpicoord[arraycounter].split(",");
    currentidstring = ""+arrtempcoords[0]+""+arrtempcoords[1]+""+arrtempcoords[2]+""+arrtempcoords[3];

    markLeft = parseInt(arrtempcoords[0])+parseInt(pagepicLeft);
    markTop = parseInt(arrtempcoords[1])+parseInt(pagepicTop);
    markHeight = parseInt(arrtempcoords[3])-parseInt(arrtempcoords[1]);
    markWidth = parseInt(arrtempcoords[2])-parseInt(arrtempcoords[0]);

    // set border style to work with the current browser. 
    // Dashed border only works with IE6 or higher for IE browsers
    if (isie == true) {
  	  smallWidthHeight = 3;
	  bottomhory = markHeight+markTop-borderWidth+1;
	  if (isie55up == false){
	    currentborderstyle = 'double';
	  }
    }
    else {
	  smallWidthHeight = 1;
	  bottomhory = markHeight+markTop-borderWidth+2;
    }
 
    if (document.getElementById(islinkedpictext,currentidstring+'islinkedpictext')) { // insert new layers if we do not already have created them   
	  tempislinkedtext = document.getElementById(currentidstring+'islinkedpictext');
      tempislinkedleft = document.getElementById(currentidstring+'islinkedv1');
      tempislinkedright = document.getElementById(currentidstring+'islinkedv2');
      tempislinkedtop = document.getElementById(currentidstring+'islinkedh1');
      tempislinkedbottom = document.getElementById(currentidstring+'islinkedh2');
    }
    else {
      tempislinkedtext = insertlayerelement(islinkedpictext,currentidstring+'islinkedpictext');
      tempislinkedleft = insertlayerelement(vertbordlayer,currentidstring+'islinkedv1');
      tempislinkedright = insertlayerelement(vertbordlayer,currentidstring+'islinkedv2');
      tempislinkedtop = insertlayerelement(horbordlayer,currentidstring+'islinkedh1');
      tempislinkedbottom = insertlayerelement(horbordlayer,currentidstring+'islinkedh2');
    }
    tempislinkedtext.style.zIndex = 24;
    tempislinkedleft.style.zIndex = 20;
    tempislinkedright.style.zIndex = 20;
    tempislinkedtop.style.zIndex = 20;
    tempislinkedbottom.style.zIndex = 20;

    // set border color
	setdebugbordercolor(tempislinkedtop, tempislinkedbottom, tempislinkedleft, tempislinkedright, islinkedbordercolor);

	// put and show textlayer
    tempislinkedtext.lastChild.nodeValue = 'unlinked image';
    tempislinkedtext.style.top = markTop+'px';
    tempislinkedtext.style.left = markLeft+'px';
    tempislinkedtext.style.visibility = 'visible';

    // put format and top layer
    tempislinkedtop.style.top = markTop+'px';
    tempislinkedtop.style.left = markLeft+'px';
    tempislinkedtop.style.height = smallWidthHeight;
	tempislinkedtop.style.width = markWidth;
    tempislinkedtop.style.overflow = 'hidden';
    tempislinkedtop.style.borderWidth = borderWidth;
    tempislinkedtop.style.borderStyle = currentborderstyle;
    tempislinkedtop.style.visibility = 'visible';

    // put format and top layer
    tempislinkedbottom.style.top = bottomhory+'px';
    tempislinkedbottom.style.left = markLeft+'px';
    tempislinkedbottom.style.height = smallWidthHeight;
	tempislinkedbottom.style.width = markWidth;
    tempislinkedbottom.style.overflow = 'hidden';
    tempislinkedbottom.style.borderWidth = borderWidth;
    tempislinkedbottom.style.borderStyle = currentborderstyle;
    tempislinkedbottom.style.visibility = 'visible';

    // put format and left layer
    tempislinkedleft.style.top = markTop+'px';
    tempislinkedleft.style.left = markLeft+'px';
    tempislinkedleft.style.height = markHeight+borderWidth+1;
	tempislinkedleft.style.width = smallWidthHeight;
    tempislinkedleft.style.overflow = 'hidden';
    tempislinkedleft.style.borderWidth = borderWidth;
    tempislinkedleft.style.borderStyle = currentborderstyle;
    tempislinkedleft.style.visibility = 'visible';

    // put format and right layer
    tempislinkedright.style.top = markTop+'px';
    tempislinkedright.style.left = (markLeft+markWidth-smallWidthHeight+1)+'px';
    tempislinkedright.style.height = markHeight+borderWidth+1;
	tempislinkedright.style.width = smallWidthHeight;
    tempislinkedright.style.overflow = 'hidden';
    tempislinkedright.style.borderWidth = borderWidth;
    tempislinkedright.style.borderStyle = currentborderstyle;
    tempislinkedright.style.visibility = 'visible';
  }

}

