var isDOM = document.getElementById // DOM1 browser (MSIE 5+, Netscape 6, Opera 5+)
var isOpera = isOpera5 = window.opera && isDOM // Opera 5+
var isOpera6 = isOpera && window.print // Opera 6+
var isOpera7 = isOpera && document.readyState // Opera 7+
var isMSIE = document.all && document.all.item && !isOpera // Microsoft Internet Explorer 4+
var isMSIE5 = isDOM && isMSIE // MSIE 5+
var isNetscape4 = document.layers // Netscape 4.*
var isMozilla = isDOM && navigator.appName=="Netscape" // Mozilla or Netscape 6.*

var MaxSymbols = 250;



// --- --- COOKIES --- --- 



  // Check cookies support

  var CookiesSupported;
  setCookie("CheckCookies", "Check", "", "/");

  if (getCookie("CheckCookies") == "Check"){

    CookiesSupported = true;
  }else{

    CookiesSupported = false;
  }
  
  // Basic

  function setCookie (name, value, expires, path, domain, secure) {

          document.cookie = name + "=" + escape(value) +
          ((expires) ? "; expires=" + expires : "") +
          ((path) ? "; path=" + path : "") +
          ((domain) ? "; domain=" + domain : "") +
          ((secure) ? "; secure" : "");
  }

  function getCookie(name) {

    var cookie = " " + document.cookie;
    var search = " " + name + "=";
    var setStr = null;
    var offset = 0;
    var end = 0;
    if (cookie.length > 0) {
      offset = cookie.indexOf(search);
      if (offset != -1) {
        offset += search.length;
        end = cookie.indexOf(";", offset)
        if (end == -1) {
          end = cookie.length;
        }
        setStr = unescape(cookie.substring(offset, end));
      }
    }
    return(setStr);
  }

function openWindow(path,width,height){

  window.open(path,"_blank","width="+width+",height="+height+",resizable=yes,scrollbars=yes,top=20,left=20,toolbar=yes,status=yes");
}

  // Login form

  function RememberCredentials(){

    if (document.login.rm.checked){

      var expireDate = new Date();
      expireDate.setDate(365 + expireDate.getDate());
                 
      setCookie("UserName", document.login.email.value, expireDate.toGMTString(), "/");
      setCookie("Password", document.login.pass.value, expireDate.toGMTString(), "/");
    }else{
      setCookie("UserName", "", "", "/");
      setCookie("Password", "", "", "/");
    }
  }

  function InsertCredentials(){

    if (getCookie("UserName") != null){
      document.login.email.value = getCookie("UserName");
      document.login.rm.checked = true;
    }

    if (getCookie("Password") != null){
      document.login.pass.value = getCookie("Password");
      document.login.rm.checked = true;
    }
  }



// --- --- CHECKS --- --- 



function layer(layerName){

  if(document.getElementById) return document.getElementById(layerName) // DOM1 
  if(document.all) return document.all[layerName] // MSIE4
  if(document.layers) return document.layers[layerName] // Netscape 4
  return null // unsupported browser
}

function getNumberOfSymbols(objectName, field, MaxSymbols){

  var symbols = MaxSymbols - field.value.length;

  if (symbols < 0){

    field.value = field.value.substr(0,MaxSymbols);
    symbols = 0;
  }

  layer('numberOfSymbols').innerHTML = '&nbsp;/ ' + (symbols==0?'<span class=Error>':'') + symbols + ' symbol' + (symbols==1?'':'s') + ' left' + (symbols==0?'</span>':'');
}

function CheckSearchField(form){

  if (form.search_keyword.value == '' || form.search_keyword.value.match(/^\s+$/)) {

    alert('Please enter a keyword!');
    return false;
  }
  else
  {
    window.location.replace('/search/by-keyword-'+form.search_keyword.value);
    return false;
  }
}

function CheckLoginForm(form){

  if (form.email.value == '' || !form.email.value.match(/^[\d\w\.\-_]+@[\d\w\-_]+(\.[\d\w\-_]+)+$/)) {

    alert("Please enter a valid username (E-mail address)");
    return false;
  }

  if (form.pass.value == '' || form.pass.value.match(/^\s+$/)) {

    alert("Please enter a valid password");
    return false;
  }

  return true;
}



// --- --- PETS --- --- 



var petCounter = 0;
var petImageList = new Array();
var defaultPet = new Image();

function PreloadImage(url){

    petImageList[petCounter] = new Image();
    petImageList[petCounter].src = url;
    petCounter++;
}

function ShowPet(num){

    document.images.pet.src = petImageList[num].src;
}

function SetDefaultPet(){

    defaultPet.src = document.images.pet.src;
}

function ShowDefaultPet(num){

    document.images.pet.src = defaultPet.src;
}
/*
PreloadImage("dog");
PreloadImage("cat");
PreloadImage("hamster");
PreloadImage("parrot");
PreloadImage("fish");
PreloadImage("fish");
PreloadImage("frog");
PreloadImage("lizard");
PreloadImage("spider");
*/
function ChangeDefaultPet(name){

  document.pets.default_pet.value = name; 
  document.pets.action = "/search/"+name;

  if (CookiesSupported){

    var expireDate = new Date();
          expireDate.setDate(365 + expireDate.getDate());

    setCookie("DefaultPet", document.pets.default_pet.value, expireDate.toGMTString(), "/");
    setCookie("DefaultPet", document.pets.default_pet.value, expireDate.toGMTString(), "/");
  
  }else if (CookiesSupported){

    setCookie("DefaultPet", "", "", "/");
  }

//  document.pets.submit();
  replaceLocationByFilter(name);
}

function AddPetItem(picture, name, chosen){
  
  document.write("<tr>");

  if (chosen){
    document.write("<td class=SmallBlue style=\"color: #FD0000;\">&raquo;</td>");
    document.write("<td class=Small><a href=\"javascript: ChangeDefaultPet('"+name+"');\" class=PetsMenu style=\"color: #FD0000;\" onMouseOver=\"ShowPet("+picture+");\" onMouseOut=\"ShowDefaultPet();\">"+name+"</a></td>");
    ShowPet(picture);
    SetDefaultPet();
  }else{
    document.write("<td width=5% class=SmallBlue>&raquo;</td>");
    document.write("<td width=95% class=Small><nobr><a href=\"javascript: ChangeDefaultPet('"+name+"');\" class=PetsMenu onMouseOver=\"ShowPet("+picture+");\" onMouseOut=\"ShowDefaultPet();\">"+name+"</a></nobr></td>");
  }

  document.write("</tr>");
}



// --- --- HIDE/SHOW --- ---



function hideObject(name){

  layer(name).style.display = "none";
  setCookie(name, "hidden", "", "/");
}

function showObject(name){

  layer(name).style.display = "block";
  setCookie(name, "", "", "/");
}

function showOrHideObject(name){

  if (getCookie(name) == "hidden"){

    document.write("display: none;");
  }
}

function replaceLocationBySearchForm(frm)
{
  var baseURI = "/search";
  if (frm.search_categories_id.value != 'any')
  {
    baseURI += "/" + frm.search_categories_id.options[frm.search_categories_id.selectedIndex].text;
  }
  else
  {
    baseURI += "/any-category";
  }
  if (frm.search_subcategories_id.value != 'any')
  {
    baseURI += "/" + frm.search_subcategories_id.options[frm.search_subcategories_id.selectedIndex].text;
  }
  else
  {
    baseURI += "/any-breed-species";
  }
  if (frm.search_countries_id.value != 'any')
  {
    baseURI += "/" + frm.search_countries_id.options[frm.search_countries_id.selectedIndex].text;
  }
  else
  {
    baseURI += "/any-country";
  }
  if (frm.search_states_id.value != 'any')
  {
    baseURI += "/" + frm.search_states_id.options[frm.search_states_id.selectedIndex].text;
  }
  else
  {
    baseURI += "/any-state";
  }
  if (frm.search_city.value != '')
  {
    baseURI += "/" + frm.search_city.value;
  }
  else
  {
    baseURI += "/any-city";
  }
  frm.search_price.value = frm.search_price.value.replace(/[^\d\.]/, "");
  if (frm.search_price.value != '')
  {
    baseURI += "/price-" + frm.search_price.value;
  }
  else
  {
    baseURI += "/any-price";
  }
  window.location.replace(baseURI);
  return false;
}

function replaceLocationByFilter(aCategory)
{
  window.location.replace("/search/"+aCategory);
}

function addCategoryToLocation(aCategory)
{
  window.location.replace("/manage-breeds-species/"+aCategory);
  return false;
}
