// Copyright (C) 2007 by Eugene Ivanov, http://e-ivanov.com

var path = "/";
var pattern_mail=/[a-z0-9_-]{1,20}@(([a-z0-9-]+\.)+([a-z]{2,4})|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})/i;

var file_update = "";
var tree_id=0;

var d = document, host = 0;

var ua=navigator.userAgent.toLowerCase(); var isOpera=(ua.indexOf('opera')>-1); var isSafari=(ua.indexOf('safari')>-1); var isIE=(window.ActiveXObject);
String.prototype.parseJSON = function () {try { return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(this.replace(/"(\\.|[^"\\])*?"/g, ''))) && eval('(' + this + ')');} catch (e) { return false;}};
function Array_push() {var A_p = 0; for (A_p = 0; A_p < arguments.length; A_p++) {this[this.length] = arguments[A_p]}; return this.length} if (typeof Array.prototype.push == "undefined") {Array.prototype.push = Array_push}
function Array_shift() {var A_s = 0; var response = this[0]; for (A_s = 0; A_s < this.length-1; A_s++) {this[A_s] = this[A_s + 1]}; this.length--; return response;} if (typeof Array.prototype.shift == "undefined") { Array.prototype.shift = Array_shift}
if(!Number.prototype.toFixed){Number.prototype.toFixed=function(e){ var y=Math.round(this*Math.pow(10,e))/Math.pow(10,e); var i=e-y.toString().length+y.toString().indexOf('.')+1; if(e>0){if(y.toString().indexOf('.')<0)return y+'.'+Math.pow(10,e).toString().substring(1); else if(i>0)return y+Math.pow(10,i).toString().substring(1); else return y;} else return y;}};

function get_el(id){return document.getElementById(id);}

function createCookie(name,value,days){if (days) {var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString();} else var expires = ""; document.cookie = name+"="+encodeURIComponent(value)+expires+"; path=/";}
function readCookie(name) {var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) {var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return decodeURIComponent(c.substring(nameEQ.length,c.length));} return null;}
function eraseCookie(name){createCookie(name,"",-1);}

function Init(){
 var i, j, k;
 host = "http://"+get_el("host").innerHTML;
 tree_id = parseInt(get_el("tree_id").value);
 file_update = "/message.php";
 return true;
}

function DeInit(){
 return true;
}

function alertContents(http_request) {
 if (http_request.readyState == 4) {
  if (http_request.status == 200)
  {
   var w = new String(http_request.responseText);
   var s = w.parseJSON();

   if (typeof (s["status"]) != "undefined")
   {
    if (s["status"] == "ok")
    {
     switch (s["action"])
     {
      case "msg":
      {
       message_real(s["data"]);
       break;
      }
      default:
      {
       setTimeout(AjaxLoadErr, 100, w);
      }
     }
    }
    else if (s["status"] == "err")
    {
     switch (s["action"])
     {
      case "msg":
      {
       message_err(s["data"]);
       break;
      }
      default:
      {
       setTimeout(AjaxLoadErr, 100, w);
      }
     }
    }
    else if (s["status"] == "alr")
    {
     switch (s["action"])
     {
      default:
      {
       setTimeout(AjaxLoadErr, 100, w);
      }
     }
    }
    else setTimeout(AjaxLoadErr, 100, w);
   }
   else setTimeout(AjaxLoadErr, 100, w);
   delete w; delete s;
  }
  else alert('There was a problem with the request.');
 }
}

function makeRequest(metod, url, data) {
var http_request = false;

if (window.XMLHttpRequest) {
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) {
        http_request.overrideMimeType('text/plain');
    }
} else if (window.ActiveXObject) {
    try {
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            http_request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
    }
}

if (!http_request) {
    alert('Giving up :( Cannot create an XMLHTTP instance');
}
http_request.onreadystatechange = function() { alertContents(http_request); };
http_request.open(metod, url, true);
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded, charset=utf-8');
http_request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
http_request.send(data);
}

function Ajax_Message(pr){
// var url = host + file_update + "?ut=1&tree_id="+tree_id + "&symbols="+encodeURIComponent(get_el("symbols").value);
 var url = host + file_update + "?ut=1&tree_id="+tree_id + "&symbols=0";
 makeRequest('POST', url, pr);
}

function SendMessage(){
 var str = "", i, j, val;

 for (i=1; i <= 9; i++)
 {
  j = get_el("msg["+i+"]");
  val = j.value;
  if (i==4 && (val  == "" || val.search(/[^\d\+\-\(\)\s]/i) != -1)) {alert('Телефон набран неверно. Только цифры, тире, скобки и плюс, пожалуйста.'); j.focus(); return false;}
  if (i==5 && (val  == "" || val.search(pattern_mail) == -1)) {alert('E-mail набран неверно.'); j.focus(); return false;}
  if (j && val == "" && i!=6 && i!=7 && i!=8 && i!=9) {alert("Please, fill in all fields in the form"); j.focus(); return false;}
  str += "&msg["+i+"]="+encodeURIComponent(val);
 }

// if (!AntiRobotOk()) return false;

 if (str != "")
 {
  get_el("submit_button").disabled = true;
  Ajax_Message(str);
 }
 return false;
}

function message_send_again(){
 get_el("form_result").className = "dn";
 get_el("form").className = "db";
 get_el("submit_button").disabled = false;
 get_el("form0").reset();

 return false;
}

function message_real(s){
 get_el("form_result_text").innerHTML = s["text"];
 get_el("form_result").className = "db";
 get_el("form").className = "dn";
 get_el("submit_button").disabled = false;

// if (s["codeimage"]) get_el("img_codeimage").src = "/images/numbers/"+s["codeimage"];
 return false;
}

function message_err(s){
 alert(s["text"]);
 get_el("submit_button").disabled = false;

 return false;
}

function AjaxLoadErr(s){
 get_el("submit_button").disabled = false;
 return true;
}

