// Browser type
var Browser = new Object();
var ua = navigator.userAgent.toLowerCase();
Browser.isMozilla = (typeof document.implementation != 'undefined')
                    && (typeof document.implementation.createDocument != 'undefined')
                    && (typeof HTMLDocument!='undefined');
Browser.isIE      = window.ActiveXObject ? true : false;
Browser.isIE7     = (Browser.isIE && ua.indexOf('msie 7') != -1) ? true : false;
Browser.isFirefox = (ua.indexOf("firefox") != -1);
Browser.isSafari  = (ua.indexOf("safari") != -1);
Browser.isOpera   = (typeof window.opera != 'undefined');

function dispatchException (e) {
}
if (typeof $ == "undefined") {
  var $ = function (id) {
    return document.getElementById(id);
  }
}

function elem(name, attrs, style, text) {
  var e = document.createElement(name);
  if (attrs) {
    for (key in attrs) {
      if (key == 'class') {
          e.className = attrs[key];
      } else if (key == 'id') {
          e.id = attrs[key];
      } else {
          e.setAttribute(key, attrs[key]);
      }
    }
  }
  if (style) {
    for (key in style) {
        e.style[key] = style[key];
    }
  }
  if (text) {
    e.appendChild(document.createTextNode(text));
  }
  return e;
}

function textNode(text) {
  if (text) {
    return document.createTextNode(text);
  } else {
    return null;
  }
}

var debugLine = 1;
function debug(message) {
  if (!debug_state) {
    return;
  }
  message = message || "";
  message = message ? (debugLine++) + ": " + message : message;
  var blockElement = elem("DIV", false, {
    height: "15px",
    background: "#EFEFEF",
    padding: "0 2px",
    margin: "2px",
    border: "1px solid white"
  });

  blockElement.appendChild(elem("DIV", false, {
    width: "120px",
    fontSize: "9px",
    styleFloat: "right",
    cssFloat: "right",
    border:"1px solid gray",
    background:"silver"
  }, new Date().toTimeString()));

  blockElement.appendChild(document.createTextNode(message));
  $('debug').appendChild(blockElement);
}

function parseUrl(sourceUri) {
  sourceUri = sourceUri ? sourceUri : window.location;
  var uriParts = new RegExp("^(?:([^:/?#.]+):)?(?://)?(([^:/?#]*)(?::(\\d*))?)?((/(?:[^?#](?![^?#/]*\\.[^?#/.]+(?:[\\?#]|$)))*/?)?([^?#/]*))?(?:\\?([^#]*))?(?:#(.*))?").exec(sourceUri);
  var uri = {
          url:      sourceUri,
          protocol: RegExp.$1,
          auth:     RegExp.$2,
          domain:   RegExp.$3,
          port:     RegExp.$4,
          path:     RegExp.$5,
          dir:      RegExp.$6,
          file:     RegExp.$7,
          query:    RegExp.$8,
          hash:     RegExp.$9
      }

  if(uri.dir.length > 0) uri.dir = uri.dir.replace(/\/?$/, "/");

  return uri;
}

function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars  = query.split("&");
  for (var i = 0; i < vars.length; i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  }
  return false;
}

var MyAjaxHandlers = {
  onCreate: function(e) {
    Element.show("ajax-indicator");
  },
  onComplete: function(e) {
    Element.hide("ajax-indicator");
  },
  onSuccess: function(e) {
    Element.hide("ajax-indicator");
  },
  onFailure: function(e) {
    Element.hide("ajax-indicator");
  },
  onLoaded: function(e) {
    Element.hide("ajax-indicator");
  }
}
Ajax.Responders.register(MyAjaxHandlers);

var docWindow; 
function documentWindow(src, width, height, resizable) {
  var scroll='yes';
  var w=(width) ? width : 710; 
  var h=(height) ? height : 560;
  var l=(screen.width-w)/2;
  var t=(screen.height-h)/2;
  var r = (resizable) ? resizable : 'no';

  docWindow=window.open(src, "blankDocWindow", 'status=no,scrollbars='+scroll+',resizable='+r+',top='+t+',left='+l+',width='+w+',height='+h+''); 
  docWindow.focus();
  return false;
}

var oImageWindow; 
function imageWindow(src,width,height,print,title){ 
  var scroll = 'no';
  var w = (print==true) ? 20 : 20;
  var h = (print==true) ? 20 : 0;  

  if( height>640 ) { w = w+width; h=660; scroll='yes'; }
  else              { w=width; h=h+height; scroll='no'; }

  var l=(screen.width-w)/2;
  var t=(screen.height-h)/2;

  title = (!title) ? "Всероссийская перепись кошек" : title + " : Всероссийская перепись кошек";

  oImageWindow=window.open("","blankImageWindow", 'status=no,scrollbars='+scroll+',resizable=0,top='+t+',left='+l+',width='+w+',height='+h+''); 
  oImageWindow.document.write("<html><head><title>"+title+"</title><link rel='stylesheet' type='text/css' href='./_app/css/normal.css'></head>"); 
  oImageWindow.document.write("<body topmargin=0 marginheight=0 leftmargin=0 marginwidth=0 bgcolor=white text=black link=black alink=black vlink=black>"); 
  oImageWindow.document.write("<center>"); 
  oImageWindow.document.write("<table border=0 cellspacing=0 cellpadding=0 bgcolor=#FFFFFF>"); 
  oImageWindow.document.write("<tr><td align=center bgcolor=white>"); 
  oImageWindow.document.write("<a href='javascript:self.close();' title='Закрыть окно'><img src='"+src+"' width="+width+" height="+height+" border=0></a>"); 
  if (print==true)
    oImageWindow.document.write("</td></tr><tr><td align='center'><a class='cat' href='javascript:self.print();'>Распечатать</a></td></tr>"); 
  else
    oImageWindow.document.write("</td></tr>"); 
  oImageWindow.document.write("</table>"); 
  oImageWindow.document.write("</body></html>"); 
  oImageWindow.document.close(); 
  oImageWindow.focus();
}

function onShowHide(element) {
  if($(element).visible()) {
    $(element).hide();
    $('p_' + element).className = 'closed';
  }else{
    $(element).show();
    $('p_' + element).className = 'opened';
  }
  return false;
}

function elementShowHide(element) {
  if($(element).visible()) {
    $(element).hide();
  }else{
    $(element).show();
  }
  return false;
}

function sendPurr() {
  $('purr').appendChild($('ajax-indicator'));
  $('ajax-indicator').setStyle({
    margin: '-80px 0 0 170px'
  });
  var url = base + 'ajax/?action=sendPurr';
  var pars = $('formPurr').serialize();
  var myAjax = new Ajax.Request(url,
    {
      method: 'post',
      parameters: pars,
      onComplete: function(transport) {
        var hashResponse = transport.responseText.evalJSON();
        if(hashResponse.result == 'success') {
          alert('Сообщение Вашему другу успешно отправлено.');
        }else{
          alert('Не удалось отправить сообщение Вашему другу.');
        }
        $('purr').hide();
    }
  });
  return false;
}
