function jBook(a,b){var c=this;c.documentRoot=a;c.page=b;c.getRoot=function(){return c.documentRoot};c.getPage=function(){return c.page};c.gotoUrl=function(d){document.location.href=c.getRoot()+"/"+d}}function pathById(d){var b=d%10;var c=d/10;var a=b;while(c>0){d=c;b=d%10;c=d/10;a=a+"/"+b}};
var _selectHeight = 24;

var _forms = document.getElementsByTagName('form');
var inputs = new Array();
var selects = new Array();
var labels = new Array();
var radios = new Array();
var radioLabels = new Array();
var checkboxes = new Array();
var checkboxLabels = new Array();
var buttons = new Array();
var selects = new Array();
var all_selects = false;
var active_select = null;
var agt = navigator.userAgent.toLowerCase();
var isMac = is_mac();
var selectText = "please select";
var IN_CFORMS = true;

function is_mac() {
  if (navigator.appVersion.indexOf("Safari") != -1)
  {
    if(!window.getComputedStyle)
    {
      return true;
    }
  }
  
  return false;
}

function initCastomForms() {

  if(!document.getElementById) {return false;}
  getElements();
  separateElements();
  replaceRadios();
  replaceCheckboxes();
  replaceSelects();

  var _selects = document.getElementsByTagName('select');
  var _SelctClassName = [];
  if (_selects) {
    for (var i = 0; i < _selects.length; i++) {
      if (_selects[i].className != '' && _selects[i].className != 'outtaHere')
        _SelctClassName[i] = ' drop-'+_selects[i].className;
    }
    for (var i = 0; i < _SelctClassName.length; i++) {
      var _selectDrop = document.getElementById('optionsDiv'+i);
      if (_selectDrop) {
        if (_SelctClassName[i]) 
          _selectDrop.className += _SelctClassName[i];
      }
    }
  }
  
}


// getting all the required elements
function getElements() {
  for (var nf = 0; nf < document.getElementsByTagName("form").length; nf++) {
    for(var nfi = 0; nfi < document.forms[nf].getElementsByTagName("input").length; nfi++) {inputs.push(document.forms[nf].getElementsByTagName("input")[nfi]);}
    for(var nfl = 0; nfl < document.forms[nf].getElementsByTagName("label").length; nfl++) {labels.push(document.forms[nf].getElementsByTagName("label")[nfl]);}
    for(var nfs = 0; nfs < document.forms[nf].getElementsByTagName("select").length; nfs++) {selects.push(document.forms[nf].getElementsByTagName("select")[nfs]);}
  }
}

// separating all the elements in their respective arrays
function separateElements() {

  var r = 0; var c = 0; var t = 0; var rl = 0; var cl = 0; var tl = 0; var b = 0;
  for (var q = 0; q < inputs.length; q++) {
  //alert(inputs[q].type);
    if(inputs[q].type == "radio") {
      radios[r] = inputs[q]; ++r;
      //alert(radios.length);
      for(var w = 0; w < labels.length; w++) {
        if((inputs[q].id) && labels[w].htmlFor == inputs[q].id)
        {
          radioLabels[rl] = labels[w];
          ++rl;
        }
      }
    }
    
    if((inputs[q].type == "submit") || (inputs[q].type == "button")) {
      buttons[b] = inputs[q]; ++b;
    }
  }
}

//replacing radio buttons
function replaceRadios() {
  for (var q = 0; q < radios.length; q++) {
    radios[q].className += " outtaHere";
    var radioArea = document.createElement("div");
    if(radios[q].checked) {   
      radioArea.className = "radioAreaChecked";
    }
    else
    {
      radioArea.className = "radioArea";
    }
    radioArea.id = "myRadio" + q;
    radios[q].parentNode.insertBefore(radioArea, radios[q]);
    radios[q]._ra = radioArea;

    radioArea.onclick = new Function('rechangeRadios('+q+')');
    if (radioLabels[q])
    {
      radioLabels[q].onclick = new Function('rechangeRadios('+q+')');
    }
  }
  return true;
}

//checking radios
function checkRadios(who) {
  //alert(1234);
  var what = radios[who]._ra;
  for(var q = 0; q < radios.length; q++) {
    if((radios[q]._ra.className == "radioAreaChecked")&&(radios[q]._ra.nextSibling.name == radios[who].name))
    {
      radios[q]._ra.className = "radioArea";
    }
  }
  what.className = "radioAreaChecked";
}

//changing radios
function changeRadios(who) {
  if(radios[who].checked) {
    for(var q = 0; q < radios.length; q++) {
      if(radios[q].name == radios[who].name) {
        radios[q].checked = false;
      } 
      radios[who].checked = true; 
      checkRadios(who);
    }
  }
}

//rechanging radios
function rechangeRadios(who) {
  if(!radios[who].checked) {
    for(var q = 0; q < radios.length; q++) {
      if(radios[q].name == radios[who].name)  {
        radios[q].checked = false; 
      }
      radios[who].checked = true; 
      checkRadios(who);
    }
  }
}

//replacing checkboxes
function replaceCheckboxes() {
  for (var q = 0; q < checkboxes.length; q++) {
    checkboxes[q].className += " outtaHere";
    var checkboxArea = document.createElement("div");
    if(checkboxes[q].checked) {
      checkboxArea.className = "checkboxAreaChecked";
    }
    else {
      checkboxArea.className = "checkboxArea";
    }
    checkboxArea.id = "myCheckbox" + q;
    checkboxes[q].parentNode.insertBefore(checkboxArea, checkboxes[q]);
    checkboxes[q]._ca = checkboxArea;
    checkboxArea.onclick = checkboxArea.onclick2 = new Function('rechangeCheckboxes('+q+')');
    if (checkboxLabels[q])
    {
      checkboxLabels[q].onclick = new Function('changeCheckboxes('+q+')');
    }
    
    checkboxes[q].onkeydown = checkEvent;
  }
  return true;
}

//checking checkboxes
function checkCheckboxes(who, action) {
  var what = checkboxes[who]._ca;
  if(action == true) {
    what.className = "checkboxAreaChecked";
    what.checked = true;
  }
  if(action == false) {
    what.className = "checkboxArea";
    what.checked = false;
  }
}

//changing checkboxes
function changeCheckboxes(who) {
  if(checkboxes[who].checked) {
    checkCheckboxes(who, false);
  }
  else {
    checkCheckboxes(who, true);
  } 
}

//rechanging checkboxes
function rechangeCheckboxes(who) {
  var tester = false;
  if(checkboxes[who].checked == true) {
    tester = false;
  }
  else {
    tester = true;
  }
  checkboxes[who].checked = tester;
  checkCheckboxes(who, tester);
}

//check event
function checkEvent(e) {
  if (!e) var e = window.event;
  if(e.keyCode == 32) {for (var q = 0; q < checkboxes.length; q++) {if(this == checkboxes[q]) {changeCheckboxes(q);}}} //check if space is pressed
}


function replaceSelects() {
  for(var q = 0; q < selects.length; q++) {
  if (!selects[q].replaced && selects[q].offsetWidth)
  {
    selects[q]._number = q;
    //create and build div structure
    var selectArea = document.createElement("div");
    var left = document.createElement("span");
    left.className = "left";
    selectArea.appendChild(left);
    
    var disabled = document.createElement("span");
    disabled.className = "disabled";
    selectArea.appendChild(disabled);
    
    selects[q]._disabled = disabled;
    var center = document.createElement("span");
    var button = document.createElement("a");
    var text = document.createTextNode(selectText);
    center.id = "mySelectText"+q;
    
    var stWidth = selects[q].offsetWidth;
    selectArea.style.width = stWidth + "px";
    if (selects[q].parentNode.className.indexOf("type2") != -1){
      button.href = "javascript:showOptions("+q+",true)";
    } else {
      button.href = "javascript:showOptions("+q+",false)";
    }
    button.className = "selectButton";
    selectArea.className = "selectArea";

    selectArea.className += " " + selects[q].className;
    selectArea.id = "sarea"+q;
    center.className = "center";
    center.appendChild(text);
    selectArea.appendChild(center);
    selectArea.appendChild(button);
    
    //hide the select field
    selects[q].className += " outtaHere";
    //insert select div
    selects[q].parentNode.insertBefore(selectArea, selects[q]);
    //build & place options div

    var optionsDiv = document.createElement("div");
    
    var optionsList = document.createElement("ul");
    optionsDiv.innerHTML += "<div class='select-top'><div></div></div>";
    optionsDiv.appendChild(optionsList);
    
    selects[q]._options = optionsList;
    
    optionsDiv.style.width = stWidth + "px";
    optionsDiv._parent = selectArea;
    
    optionsDiv.className = "optionsDivInvisible";
    optionsDiv.id = "optionsDiv"+q;
    
  
    populateSelectOptions(selects[q]);
    optionsDiv.innerHTML += "<div class='select-bottom'><div class='select-bottom-left'></div><div class='select-bottom-right'></div></div>";
    document.getElementsByTagName("body")[0].appendChild(optionsDiv);
    selects[q].replaced = true;
    }
  all_selects = true;
  }
}

//collecting select options
function populateSelectOptions(me) {
  me._options.innerHTML = "";
  
  for(var w = 0; w < me.options.length; w++) {
    
    var optionHolder = document.createElement('li');
    var optionLink = document.createElement('a');
    var optionTxt;
    if (me.options[w].title.indexOf('image') != -1) {
      optionTxt = document.createElement('img');
      optionSpan = document.createElement('span');
      optionTxt.src = me.options[w].title;
      optionSpan = document.createTextNode(me.options[w].text);
    } else {
      optionTxt = document.createTextNode(me.options[w].text);
    }
    
    optionLink.href = "javascript:showOptions("+me._number+"); selectMe('"+me.id+"',"+w+","+me._number+");";
    if (me.options[w].title.indexOf('image') != -1) {
      optionLink.appendChild(optionTxt);
      optionLink.appendChild(optionSpan);
    } else {
      optionLink.appendChild(optionTxt);
    }
    optionHolder.appendChild(optionLink);
    me._options.appendChild(optionHolder);
    //check for pre-selected items
    if(me.options[w].selected) {
      selectMe(me.id,w,me._number);
    }
  }
  if (me.disabled) {
    me._disabled.style.display = "block";
  }
  else {
    me._disabled.style.display = "none";
  }
}

//selecting me
function selectMe(selectFieldId,linkNo,selectNo) {
  selectField = selects[selectNo];
  for(var k = 0; k < selectField.options.length; k++) {
    if(k==linkNo) {
      selectField.options[k].selected = true;
    }
    else {
      selectField.options[k].selected = false;
    }
  }
  
  //show selected option
  textVar = document.getElementById("mySelectText"+selectNo);
  var newText;
  var optionSpan;
  if (selectField.options[linkNo].title.indexOf('image') != -1) {
    newText = document.createElement('img');
    newText.src = selectField.options[linkNo].title;
    optionSpan = document.createElement('span');
    optionSpan = document.createTextNode(selectField.options[linkNo].text);
  } else {
    newText = document.createTextNode(selectField.options[linkNo].text);
  }
  if (selectField.options[linkNo].title.indexOf('image') != -1) {
    if (textVar.childNodes.length > 1) textVar.removeChild(textVar.childNodes[0]);
    textVar.replaceChild(newText, textVar.childNodes[0]);  
    textVar.appendChild(optionSpan);  
  } else {
    if (textVar.childNodes.length > 1) textVar.removeChild(textVar.childNodes[0]);
    textVar.replaceChild(newText, textVar.childNodes[0]);  
  }

  if (selectField.onchange && all_selects)
    {
      eval(selectField.onchange());
    }
}
//showing options
function showOptions(g) {
    _elem = document.getElementById("optionsDiv"+g);
    var divArea = document.getElementById("sarea"+g);
    if (active_select && active_select != _elem) {
      active_select.className = active_select.className.replace('optionsDivVisible','');
      active_select.className += " optionsDivInvisible";
      active_select.style.height = "auto";
    }
    if(_elem.className.indexOf("optionsDivInvisible") != -1) {
      _elem.style.left = "-9999px";
      _elem.style.top = findPosY(divArea) + _selectHeight + 'px';
      _elem.className = _elem.className.replace('optionsDivInvisible','');
      _elem.className += " optionsDivVisible";
      /*if (_elem.offsetHeight > 200)
      {
        _elem.style.height = "200px";
      }*/
      _elem.style.left = findPosX(divArea) + 'px';
      
      active_select = _elem;
      if(document.documentElement)
      {
        document.documentElement.onclick = hideSelectOptions;
      }
      else
      {
        window.onclick = hideSelectOptions;
      }
    }
    else if(_elem.className.indexOf("optionsDivVisible") != -1) {
      _elem.style.height = "auto";
      _elem.className = _elem.className.replace('optionsDivVisible','');
      _elem.className += " optionsDivInvisible";
    }
    
}



function isElementBefore(_el,_class)
{
  var _parent = _el;  
  do
  {
    _parent = _parent.parentNode;
  }
  while(_parent && _parent.className != null && _parent.className.indexOf(_class) == -1)
  
  if(_parent.className && _parent.className.indexOf(_class) != -1)
  {
    return 1;
  }
  else
  {
    return 0;
  }
  
}

function findPosY(obj) {
  var posTop = 0;
  while (obj.offsetParent) {posTop += obj.offsetTop; obj = obj.offsetParent;}
  return posTop;
}
function findPosX(obj) {
  var posLeft = 0;
  while (obj.offsetParent) {posLeft += obj.offsetLeft; obj = obj.offsetParent;}
  return posLeft;
}

function tabs()
{
	    var _li = $('.tabset li');
	    //alert(12);
	   _li.each(function(_el){
		$(this).css('z-index',_li.length-_el);
	    });
}

window.onload = initCastomForms;
$(document).ready(function(){
	$(".hd-all a").click(function(){
        send_ajax(0, 'All Genres');
		if ( $(".custom-menu").is(':visible')) {
			$(".custom-menu").slideUp(0);
		}   
		$(".general-menu").slideDown(0);
	});
    
    $(".roll .but").click(function(){
        $(this).parents('li').find('ul[class="inner"]').slideToggle(0);
        $(this).parent().toggleClass("closed");    
        send_ajax($(this).attr('value'),$(this).text());
    });
    
	tabs();
	
	$(".but-search").click(function(){
		$("#main_search").submit();
		return false;
	});
    
	$("#main_search").submit(function(){
		type = $("#audio").attr('checked');
		
		key = $("#search").val();
    key = deletespecialchars(key);

    key = key.split(" ").join("-");
        k = key.lastIndexOf("%");
        if(k != -1) {
            $('#maincol').empty();
            $('#maincol').append("<h1>Your search \"%\" did not match any products.</h1>");  
            return false;        
        }
       pageTracker. _trackEvent('search', 'main', 'search', $("#search").val());
        
		if (type)
			location.href = "http://"+ location.host + "/books/audio/key-" + key ;
		else
		location.href = "http://"+ location.host + "/books/key-"+ key;
		return false;
	});
  
$('.browse>ul>li>a').click(function(){ 
  var type = $("#title").attr('checked');
  var text = '';
  if(type) 
    text = 'title-';
  else
    text = 'writer-';  
  document.location.href=jBk.getRoot() +'/books/'+ text +$(this).attr("text");    
  return false;
});

$('#s_genre').submit(function(){
  var genre = $("#search_genre").val().split(" ").join("-");
   pageTracker._trackEvent('search', 'genre', 'search',  $("#search_genre").val());
  document.location.href=jBk.getRoot() + '/genres/genre-' + genre;
  return false;
});

$('.but-search_g').click(function(){
  $('#s_genre').submit();
});

  
});  


// JavaScript Document
//<!--
$('#bottombooks').ready(function() { 
     });
$(document).ready(
function(){ 

$("#bottombooks li").click(function(){
    
  $(this).parent().parent().children().removeClass("active");
  $(this).parent().addClass("active"); 
  var _img = $("#bottombooks li");
  _img.each(function(){
  var src = $(this).attr('css');
  $(this).removeClass("active"); 
  $(this).css('background-image','url(../images/bottom_nonactive.gif)'); 
  });
  //src =  $(this).find('img').attr('src');
  $(this).css('background-image','url(../images/bottoms_active.gif)'); 
  tabs();
  $(this).css('z-index:99!important'); 
  $(this).addClass("active"); 
});
 
$(".reg").html(""); $(".message").html(""); $(".sign").html("");         
$("#ba >li>a, .tabset2 >li>a ").click(function ()
{type1 = $(".tabset >li.active").attr('value');
/*if (type1 == 1 && $(this).parent().parent().attr(\'class\')=="tabset"){
$("#ba >li.active > a > img").attr("src", "/images/nonactive/top-books.png");
}
else
if($(this).parent().parent().attr(\'class\') == "tabset") {
$("#ba >li.active > a > img").attr("src", "/images/nonactive/top-audiobooks.png");
} */
$(this).parent().parent().children().removeClass("active");
$(this).parent().addClass("active"); 
type1 = $("#ba >li.active").attr('value');
type2 = $(".tabset2 >li.active").attr('value');
/*if (type1 == 1)
$("#ba >li.active > a > img").attr("src", "/images/active/top-books.png");
else 
$("#ba >li.active > a > img").attr("src", "/images/active/top-audiobooks.png");
*/
if (type1 == type2 )
    type = type1;
else{
    if(type1 == 2)
         type = 4;
     else type = 3;
     } 
var url = jBk.getRoot();
$.ajax({
            type: "post",
            url: url+"/ajax/mainPage/makeCloud",
            data: {"type": type},
            success: function(data){
                $("#cloud").html(data);
        }});
return false;    
});
});
function dateNw(dat, mode) {
  var mes=new Array('January','February','March','April','May','June','Jule','August','September','October','November','December');
  sec = eval(dat)*1000;
  var dat=new Date(sec);
  month = mes[dat.getMonth()];
  if(mode == 0) return month;
  year = dat.getFullYear();
  if(mode == 1) return year;
  return dat.getDate()+" "+month+" "+year;
}


/**
*получить последние
*/
function getBottomBooks(mod) {
  if( mod === undefined ) {
    mod = 0;
  }
  switch ( mod ) {
    case 1:
    $.getJSON(jBk.getRoot()+"/ajax/Bottombooks/Latest", 
                function(con) {
                  printBottomBooks(con, 1);
                  });
    break;
    case 2:
    $.getJSON(jBk.getRoot()+"/ajax/Bottombooks/topAudBook", 
                function(con) {
                  //alert(con);
                  printBottomBooks(con, 2);
                  });
    break;
    case 3:
    $.getJSON(jBk.getRoot()+"/ajax/Bottombooks/topMonth", 
                function(con) {
                  //alert(con);
                  printBottomBooks(con, 3);
                  });
    break;
    case 4:
    $.getJSON(jBk.getRoot()+"/ajax/Bottombooks/topYear", 
                function(con) {
                  //alert(con);
                  printBottomBooks(con, 4);
                  });
    break;
    case 0:
    $.getJSON(jBk.getRoot()+"/ajax/Bottombooks/Most", 
                function(con) {
                  //alert(con);
                  printBottomBooks(con, 0);
                  });
    break;
    default:
    break;
  }
}

function switch_tab(id)
{
//alert($("#"+id).attr('class'));
$("#bottombooks .tab").addClass("hidden_tab");    
$("#"+id).toggleClass("hidden_tab", "tab");
}



function printBottomBooks(con, mod) {
  //alert(con.lenght);
  month = dateNw(con['time'],0);
  year = dateNw(con['time'],1);
  var com, com1, com2, com3;
  $("#bottombooks > .tab").empty();
  
  var books = con;
  var comm = $("<div></div>").attr({'class':'wrap'});
  var cmt  = $("<div></div>").attr({'class':'tab'});
  
  for( var i = 0; i < books.length; i++) {

    var data = dateNw(books[i].add_time);
    
    com  = $("<div></div>").attr({'class':'desc'});
    
    com1 = $("<div></div>").attr({'class':'photo'});
    
    com2 = $("<span></span>").attr({'class':'date'}).append(data);
   
    com1.append(com2);
    
    com2 = $("<a></a>").attr({'href': jBk.getRoot()+'/book/' +  books[i].burl });
    
    com3 = $("<img />").attr({'src': books[i].img,'alt':books[i].title, 'title':books[i].title, 'height':'150'});
    com2.append(com3);
    com1.append(com2);
    com.append(com1);
    com1 = $("<div></div>")
      .attr({'class':'txt'});
    com2 = $("<h3></h3>");
    com3 = $("<a></a>").attr({'href':jBk.getRoot() + '/book/' + books[i].burl }).append(books[i].title);
    com2.append(com3);
    com1.append(com2);
    if(!books[i].writername) {
      books[i].writername = "";
    }
    com2 = $("<a></a>").attr({'href': jBk.getRoot() + '/writer/' + books[i].writer_url}).append(books[i].writername);
    com1.append(com2);
    com1.append("<br/>");
    com2 = $("<a></a>")
      .attr({'href': jBk.getRoot() + '/genre/' + books[i].genre_url})
      .append(books[i].genrename);
    com1.append(com2);
    com2 = $("<p></p>")
      .append(books[i].plot);
    com1.append(com2);
    com.append(com1);
    comm.append(com); 
    
    if( i % 2 != 0) {
      comm.append(com);
      $("#bottombooks > .tab").append(comm);
      comm = $("<div></div>").attr({'class':'wrap'});
    }
  }
  tabs();
}
/*
* функция подсчета статистики
*/

function accountStatistic(){
return true;
$.ajax({
           type: "GET", 
           url: "http://www.onread.com/ajax/users/statistic/",
           data: {
            "loc": String(location)
              
           },
           error: function(request,error) 
            {
             //console.log(arguments);
             //alert(request);
            },
             success: function(data){
             //  alert(data);

            }
         });
}
function trim(sInString){
	sInString = sInString.replace(/ /g,' ');
	return sInString.replace(/(^\s+)|(\s+$)/g, "");
}

function deletespecialchars(string){
	string = string.replace(/\\/g, "");
	return trim(string.replace(/[\\\@\'\#\!\?\$\%\^\&\*\~\.\,\;\"]/g, "").replace(/\'/, "").replace(/(\s){2,}/, " ").replace(/(-){2,}/, "-"));
	}
//-->
