var headID = document.getElementsByTagName("head")[0];
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = '/public/js/jquery/1.7.1/jquery.min.js';
headID.appendChild(newScript);
var cssFile = document.createElement('link');
cssFile.type = 'text/css';
cssFile.href = '/public/css/htmlreaderinner.css';
cssFile.rel = 'stylesheet';
cssFile.media="screen";
headID.appendChild(cssFile);
function handle(delta) {
var d=delta*-20;
parent.window.$.kbuuk.htmlreader.onFrameScroll(d);
}
function wheel(event){
var delta = 0;
if (!event) event = window.event;
if (event.wheelDelta) {
delta = event.wheelDelta/120;
if (window.opera) delta = -delta;
} else if (event.detail) {
delta = -event.detail/3;
}
if (delta) handle(delta);
if (event.preventDefault) event.preventDefault();
event.returnValue = false;
return false;
}
if (window.addEventListener) window.addEventListener("DOMMouseScroll", wheel, false);
window.onmousewheel = document.onmousewheel = wheel;
/*
window.onclick =document.click = function(ev)
{
origEl = ev.target || ev.srcElement;
if( origEl.tagName != 'IMG' )
{
$(origEl).toggleClass('selected');
}
parent.window.handleshare();
//fnSelect(origEl);
}
*/
window.onmouseup =document.mouseup = function(ev)
{
var range= null;
if (document.selection) {
if( document.getSelection().rangeCount > 0 )
{
range = document.getSelection().getRangeAt(0);
}
}
else if (window.getSelection) {
if( window.getSelection().rangeCount > 0 )
{
range = window.getSelection().getRangeAt(0);
}
}
parent.window.$.kbuuk.htmlreader.onSelected(range,ev);
origEl = ev.target || ev.srcElement;
//parent.window.$.kbuuk.htmlreader.onAnnotationClicked( origEl );
}
window.onkeydown = function( e )
{
e = e || window.event;
var keyCode = e.keyCode || e.which;
switch(keyCode) {
case 37: //$.ui.keyCode.LEFT:
{
parent.window.$.kbuuk.htmlreader.previous();
break;
}
case 38: //$.ui.keyCode.UP:
{
parent.window.$.kbuuk.htmlreader.onFrameScroll(-20);
break;
}
case 39: //$.ui.keyCode.RIGHT:
{
parent.window.$.kbuuk.htmlreader.next();
break;
}
case 40: //$.ui.keyCode.DOWN:
{
parent.window.$.kbuuk.htmlreader.onFrameScroll(20);
break;
}
case 27: //$.ui.keyCode.ESCAPE:
{
parent.window.$('#btnFullScreen').click();
break;
}
default:
return; // allow other keys to be handled
}
}
window.onclick = document.click= function( e)
{
e = e || window.event;
return parent.window.$.kbuuk.htmlreader.onContentClicked(e);
}
function jumpto(chapter, nav, e)
{
e = e || window.event;
parent.window.$.kbuuk.htmlreader.jumpToChapter( chapter, nav );
e.stopPropagation();
return false;
}
function fnSelect(obj) {
if (document.selection) {
var range = document.body.createTextRange();
range.moveToElementText(obj);
range.select();
//alert( document.getSelection().rangeCount );
}
else if (window.getSelection) {
var range = document.createRange();
range.selectNode(obj);
window.getSelection().addRange(range);
//alert( document.getSelection().rangeCount );
}
}
function fnDeSelect() {
if (document.selection) document.selection.empty();
else if (window.getSelection) window.getSelection().removeAllRanges();
}
window.selectRangeByAnnotation = function( annotation )
{
selectRange( annotation.getAttribute('startTagIndex'),
annotation.getAttribute('startContainerIndex'),
annotation.getAttribute('startOffset'),
annotation.getAttribute('endTagIndex'),
annotation.getAttribute('endContainerIndex'),
annotation.getAttribute('endOffset') );
if(annotation.getAttribute('ntype') == 'Note')
{
if( window.getSelection().rangeCount >0 )
{
parent.window.$.kbuuk.htmlreader.onAnnotationClicked( annotation, window.getSelection().getRangeAt(0) );
}
else
{
parent.window.$.kbuuk.htmlreader.onAnnotationClicked( annotation, null );
}
return false;
}
}
window.selectRange =function (startTagIndex,startContainerIndex, startOffset, endTagIndex,endContainerIndex, endOffset)
{
try{
fnDeSelect();
//console.log(startTagIndex + ',' +startOffset + ',' +endTagIndex + ','+ endOffset);
if (document.createRange) { // all browsers, except IE before version 9
var rangeObj = document.createRange();
rangeObj.setStart($('*[ida="' + startTagIndex +'"]').get(0).childNodes[startContainerIndex], startOffset);
rangeObj.setEnd($('*[ida="' + endTagIndex +'"]').get(0).childNodes[endContainerIndex], endOffset);
window.getSelection().addRange(rangeObj)
}
else { // Internet Explorer before version 9
var rangeObj = document.body.createTextRange();
rangeObj.moveToElementText($('*[ida="' + startTagIndex +'"]').get(0));
rangeObj.moveStart("character", startOffset);
rangeObj.moveToElementText($('*[ida="' + startTagIndex +'"]').get(0));
rangeObj.moveEnd("character", endOffset);
rangeObj.select();
}
}
catch( err )
{
if (document.createRange) { // all browsers, except IE before version 9
var rangeObj = document.createRange();
var startContianer = $('*[ida="' + startTagIndex +'"]').get(0);
while( (startContianer.childNodes.length < startContainerIndex) || startContianer.childNodes[startContainerIndex].nodeType !== 3 || startContianer.childNodes[startContainerIndex].nodeValue.length < startOffset)
{
startContainerIndex --;
if( startContainerIndex < 0 )
{
startContainerIndex = 0;
startOffset = 0;
break;
}
}
rangeObj.setStart($('*[ida="' + startTagIndex +'"]').get(0).childNodes[startContainerIndex], startOffset);
var endContianer = $('*[ida="' + endTagIndex +'"]').get(0);
while( (endContianer.childNodes.length < endContainerIndex) || endContianer.childNodes[endContainerIndex].nodeType !== 3 || endContianer.childNodes[endContainerIndex].nodeValue.length < endOffset)
{
endContainerIndex --;
if( endContainerIndex < 0 )
{
endContainerIndex = 0;
endOffset = 0;
break;
}
}
rangeObj.setEnd($('*[ida="' + endTagIndex +'"]').get(0).childNodes[endContainerIndex], endOffset);
window.getSelection().addRange(rangeObj)
}
}
};