// JavaScripts for ESS-Gymnasiet
// (c) 2006-05-12 by Charlie Elgholm @ All Ready Solutions AB

var topSearchText="Skriv sökord här..";

function printWindow()
{
  var t=0;
  var pd=document.getElementById("mainscreen");
  if(pd==null){
    alert("Hittar ingen skärmbild att skriva ut!");
    return;
  }
  var pw=window.open("", "winPrint", "menubar=yes,height=600,width=720");
  if(!pw){
    alert("Kan inte öppna utskriftsfönster!\nHar du en fönster-blockerare måste du stänga av den eller håll nere CTRL-knappen när du trycker på \"Skriv ut\"!");
    return;
  }

  var doc=pw.document;
  doc.open("text/html", "replace");

  doc.writeln("<html>");
  doc.writeln("<head>");
  doc.writeln("<link href=\"/special/style.css\" type=\"text/css\" rel=\"stylesheet\">");
  doc.writeln("<style type=\"text/css\">");
  doc.writeln("BODY { background: white; margin:20px; }");
  doc.writeln("#topnav { position:static; top:auto; left:auto; width: 17cm; padding: 4px 10px 0px 0px; }");
  doc.writeln("#printscreen { width: 17cm; margin:0px 20px; }");
  doc.writeln("</style>");
  doc.writeln("</head>");
  doc.writeln("<body>");
  doc.writeln("<img src=\"/images/main/logoprint.png\" width=\"309\" height=\"84\" alt=\"logoprint\"><br>");
  doc.writeln("<button id=\"btnPrintMe\" onclick=\"window.print();\" style=\"position:absolute; left:14cm; top:1cm;\">Skriv ut</button>");

  var d=new Date();
  doc.writeln("<div align=\"right\" id=\"topnav\">");
  doc.writeln("Utskrift genererad "+d.getDay()+" "+monthName(d.getMonth())+" "+d.getYear());
  doc.writeln("</div>");
  doc.writeln("<img src=\"/images/main/skugga.png\" alt=\"skugga\" style=\"width:17cm; height:8px; margin-bottom:12px;\"><br>");

  doc.writeln("<div id=\"printscreen\">");
  doc.writeln(pd.innerHTML);
  doc.writeln("</div>");
  
  doc.writeln("</body>");
  doc.writeln("</html>");

  doc.close();

  pw.attachEvent("onbeforeprint", function()
  {
    var obj=doc.getElementById("btnPrintMe");
    if(obj){
      obj.style.display="none";
    }
  });

  pw.attachEvent("onafterprint", function()
  {
    var obj=doc.getElementById("btnPrintMe");
    if(obj){
      obj.style.display="inline";
    }
  });

}

function monthName(month){
  switch(month){
    case 0: return "januari";
    case 1: return "februari";
    case 2: return "mars";
    case 3: return "april";
    case 4: return "maj";
    case 5: return "juni";
    case 6: return "juli";
    case 7: return "augusti";
    case 8: return "september";
    case 9: return "oktober";
    case 10: return "november";
    case 11: return "december";
  }
}

function tipWindow(uri)
{
  openWin("/tipsa_en_van.csp?uri="+escape(uri));
}

function initPage()
{
  var sf=document.getElementById("sokrutafalt");
  if(sf){
    if(sf.value=="" || sf.value==topSearchText){
      sf.value=topSearchText;
      sf.style.color="#999999";
      sf.attachEvent("onfocus", function(){
        if(sf.value==topSearchText){
          sf.value="";
          sf.style.color="";
        }
      });
    }
  }
}

function checkTopSearchField()
{
  var sf=document.getElementById("sokrutafalt");
  if(sf){
    if(sf.value=="" || sf.value==topSearchText){
      alert("Du måste först skriva ett eller flera sökord i sökrutan!");
      return false;
    }
  }
  return true;
}

function openWin(url)
{
  var w=window.open(url, "EssWindow", "toolbar=no,scrollbars=yes,resizable=no,width=640,height=480");
  if(w){
    w.focus();
  }else{
    alert("Kan inte öppna fönster!\nOm du har en fönsterblockerare måste du hålla inne CTRL när du trycker på länken alternativt stänga av din fönsterblockerare för denna sajt!");
  }
}


function newWindow(u,n,o)
{
  var w=window.open(u,n,o);
  if(!w){
    alert("Kan inte öppna nytt fönster! Om du har en fönsterblockerare installerad behöver du inaktiva den, alternativt hålla inne CTRL-tangenten när du klickar på länken.");
    return false;
  }
  w.focus();
  return w;
}

function showMovie2(title, movie, width, height)
{
  newWindow("/special/film.csp?title="+escape(title)+"&movie="+movie+"&width="+width+"&height="+height, "FlashVideoWindow", "toolbar=no,location=no,scrollbars=no,resizable=no,menubar=no,status=no,height="+(height+40+0)+",width="+(width+0));
}

// ProReader
var selectedString="";

function getSelectedHTML() {
  selectedString="";
  var rng=undefined;
  if (window.getSelection) {
    selobj = window.getSelection();
    if (!selobj.isCollapsed) {
      if (selobj.getRangeAt) {
        rng=selobj.getRangeAt(0);
      }
      else {
        rng = document.createRange();
        rng.setStart(selobj.anchorNode,selobj.anchorOffset);
        rng.setEnd(selobj.focusNode,selobj.focusOffset);
      }
      if (rng) {
        DOM = rng.cloneContents();
        object = document.createElement('div');
        object.appendChild(DOM.cloneNode(true));
        selectedString=object.innerHTML;
      }
      else {
        selectedString=selobj;
      }
	}
  }
  else if (document.selection) {
    selobj = document.selection;
    rng = selobj.createRange();
    if (rng && rng.htmlText) {
      selectedString = rng.htmlText;
    }
    else if (rng && rng.text) {
      selectedString = rng.text;
    }
  }
  else if (document.getSelection) {
    selectedString=document.getSelection();
  }
  selectedString = cleanSelectedString(selectedString);
}

function copySelection() {
  setTimeout("getSelectedHTML()",50);
}

document.onmouseup=copySelection;
document.onkeyup=copySelection;

function cleanSelectedString(theString)
{
	var comments = theString.match(/<!--/gi);
	var temp = "";
	if(comments != undefined)
	{
		for(i=0;i<comments.length;i++)
		{
			var temp = theString.substring(theString.search(/<!--/gi),theString.search(/-->/gi)+3);
			theString = theString.replace(temp,"");
		}
	}
	var regexp = /(<\/?[A-Z]+[0-9]?)\s?[^>]*>/gi
	theString = theString.replace(regexp, "$1>");
	var regexp2 = /<\/?[A-Z]+[0-9]?\s?>/gi
	theString = theString.replace(regexp2, function(m) { return returnTags(m);});
	var regexp_spaces = /\s+?\s*/gi
	theString = theString.replace(regexp_spaces, " ");	
	var regexp_br = /(<br>)+?\s?(<br>\s*)*/gi
	theString = theString.replace(regexp_br, "<br>");	
	return theString;
}

function returnTags(thematch)
{ 
	var regtag = /<\/?(h[1-6]|a|area|ul|ol|dl|dd|dt|li|table|td|tr|th|p|hr|br)>/i
	if(regtag.test(thematch))
	{ 
		return thematch;
	} 
	else 
	{
		return "";
	}
}


