var agent_strictHTML = 0;
var agent_usefx = 0;
var agent_isMac = (navigator.appVersion.indexOf("Mac") != -1);
var agent_NN4 = document.layers?1:0;
var agent_IE4 = document.getElementById?0:1;
var agent_OPR = (navigator.userAgent.indexOf("Opera")!=-1)?1:0;
var agent_OPR7 = 0;
var agent_NS6 = (document.getElementById && !document.all && !agent_OPR)?1:0;
if (agent_OPR) {
  temp = navigator.userAgent.split("Opera");
  if (temp[1].substring(0,1) == "/") {temp = temp[1].split("/");}
  ver = parseFloat(temp[1]);
  if (ver >= 7) agent_OPR7 = 1;
  if (ver < 7) agent_strictHTML=0;
}
if (navigator.appVersion.indexOf("MSIE")>-1) {
  temp = navigator.appVersion.split("MSIE");
  ver = parseFloat(temp[1]);
  if ((ver >= 5.5) && !agent_NS6 && !agent_OPR && !agent_isMac) agent_usefx = 1;
  if (ver<6 && !agent_isMac && !agent_OPR && !agent_NS6) agent_strictHTML=0;
}

function trim(str){
  if ( !str )
    return "";
  if ( typeof(str) != "string" )
    str = str.toString();
  var newStr = str.replace(/^[\s\t\n\r]+/, "");
  return newStr.replace(/[\s\t\n\r]+$/, "");
}

function prepareLinkStr(str){
  if ( !str )
    return "";
  str = str.toString();
  var newStr = str
        .replace(/\"/g,   "%22")
        .replace(/&/g,    "%26")
        .replace(/\?/g,   "%3F")
        .replace(/\n/g,   "%0A")
        .replace(/\r/g,   ""   )
        .replace(/\t/g,   "%09")
        .replace(/,/g,    "%2C")
        .replace(/\+/g,   "%2B")
        .replace(/\s/g,   "%20")
  return newStr;
}

function prepareInputStr(str){
  if ( !str )
    return "";
  return str.replace(/\"/g, "&#34;")
            .replace(/\'/g, "&#39;");
}

var winW = 630, winH = 460;

function getCurrentWindowSize(){
  if ( parseInt(navigator.appVersion) > 3 ) {
    if ( navigator.appName == "Netscape" ) {
      winW = window.innerWidth;
      winH = window.innerHeight;
    }
    if ( navigator.appName.indexOf("Microsoft") != -1 ) {
      winW = document.body.offsetWidth;
      winH = document.body.offsetHeight;
    }
  }
}

function getElementPosition(element){
	var objectTop = element.offsetTop;
	var objectLeft = element.offsetLeft;
	var objectParent = element.offsetParent;
	while( objectParent.tagName.toUpperCase() != "BODY" ){
		objectTop += objectParent.offsetTop;
		objectLeft += objectParent.offsetLeft;
		objectParent = objectParent.offsetParent;
	}
	return [objectTop,objectLeft];
}

var hiddenObjects = new Array();

function hideElementsIfNeeded(overDiv){
  unhideElements();
  if ( agent_usefx && ver < 7 ) 
    hideElements('SELECT', overDiv);
  //hideElements('OBJECT', overDiv);
}

function hideElements(elmID, overDiv){
  var els = document.getElementsByTagName(elmID);
  for ( var i = 0;  i < els.length; i++ ){
    obj = els[i];
    if( !obj || !obj.offsetParent )
      continue;

    var position = getElementPosition(obj);
    objTop = position[0];
    objLeft = position[1];
    objHeight = obj.offsetHeight;
    objWidth = obj.offsetWidth;

    if ( ( overDiv.offsetLeft + overDiv.offsetWidth ) <= objLeft );
    else if ( ( overDiv.offsetTop + overDiv.offsetHeight ) <= objTop );
    else if ( overDiv.offsetTop >= ( objTop + objHeight ) );
    else if ( overDiv.offsetLeft >= ( objLeft + objWidth ) );
    else if ( obj.style.visibility = "visible" ){
      hiddenObjects.push(obj);
      obj.style.visibility = "hidden";
    }
  }	
}

function unhideElements(){
  for ( var i = 0; i < hiddenObjects.length; i++ ){
    hiddenObjects[i].style.visibility = "visible";
  }
  hiddenObjects = new Array();
}

var expDays = 30;
var exp = new Date(); 
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));

function setCookie(name, value){
  document.cookie = name + "=" + escape(value)+"; expires=" + exp.toGMTString();
}

function getCookie(name){
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if ( begin == -1 ) {
    begin = dc.indexOf(prefix);
    if (begin != 0) 
      return null;
  }
  else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if ( end == -1 )
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}

function deleteCookie(name){
  if ( getCookie(name) )
    document.cookie = name + "=; expires=Thu, 01-Jan-70 00:00:01 GMT";
}

function showBanMessage(adminUser, bannedTill, banReason){
  var str = "<html><body>Вы были забанены Администрацией сайта!<br>";
  str += "Вас забанил: <b>"+adminUser+"</b><br>";
  str += "Срок действия бана: <b>"+bannedTill+"</b><br>";
  str += "Причина бана: <b>"+banReason+"</b></body></html>";
  var w = window.open("about:blank","banMessage","toolbar=0,resizable=0,fullscreen=0,"+
                                                 "scrollbars=0,left=0,top=0,"+
                                                 "location=0,z-lock=0,directories=0,"+
                                                 "menubar=0,status=0,height=250,"+
                                                 "width=400");
  w.document.write(str);
}

function removeArrayElement(arr, el){
  var newArray = new Array();
  for ( var i in arr ){
    if ( i != el )
      newArray[i] = arr[i];
  }
  return newArray;
}

function cloneItem(item){
  var newItem = new Array();
  for ( var i in item ){
    var temp = item[i];
    if ( typeof(temp) == "object" )
      temp = cloneItem(temp);
    newItem[i] = temp;
  }
  return newItem;
}

function objectToString(obj){
  if ( typeof(obj) == "string" )
    return '"'+obj.replace(/\"/g,'\\"')+'"';
  if ( typeof(obj) == "object" ){
    if ( !obj )
      return "null";
    if ( obj.length > 0 ){ //array
      var returnStr = "";
      for ( var i = 0; i < obj.length; i++ ){
        if ( i > 0 )
          returnStr += ",";
        returnStr += objectToString(obj[i]);
      }
      return "["+returnStr+"]";
    }
    if ( !obj.length ){
      var returnStr = "";
      for ( var i in obj ){
        if ( returnStr != "" )
          returnStr += ",";
        returnStr += i+":"+objectToString(obj[i]);
      }
      return "{"+returnStr+"}";
    }
  }
  if ( obj == null )
    return "null";
  return obj.toString();
}

function openCloseBlock(blockId){
  var el = document.getElementById(blockId);
  if ( !el )
    return;
  el.style.display = el.style.display == "none" ? "" : "none";
}

function hideOpenTextBlock(openText, closeText, blockId, el){
  var block = document.getElementById(blockId);
  if ( !block )
    return;
  if ( block.style.display == "none" ){
    el.innerHTML = closeText;
    block.style.display = "";
  }
  else {
    el.innerHTML = openText;
    block.style.display = "none";
  }
}

function getItemImg(item){
  if ( !item || !item.img )
	return "../design/img/spacer.gif";
  var itemImgUri = item.img.substring(item.img.lastIndexOf("/")+1);
  return "../img/dressroom/artifacts/"+itemImgUri;
}