function setCookie(cookieName, cookieValue, expires, path, domain, secure) {
  var now = new Date();
  var oneyear = new Date(now.getTime() + 1000*60*60*24*365);
  document.cookie =
    escape(cookieName) + '=' + escape(cookieValue)
    + (expires ? '; expires=' + expires.toGMTString() : '; expires=' + oneyear.toGMTString())
    + (path ? '; path=' + path : '')
    + (domain ? '; domain=' + domain : '')
    + (secure ? '; secure' : '');
};

function GetCookie( name ){
 var start = document.cookie.indexOf(" " + name + "=");
 var len   = start+name.length+2;
 if ( start == -1 ) {
    start = document.cookie.indexOf(name + "=");
    if (start != 0)
        return null;
    len   = start+name.length+1;
 }
 var end = document.cookie.indexOf( ";", len );
 if ( end == -1 )
    end = document.cookie.length;
 return unescape( document.cookie.substring(len,end) );
}

function getElementById(id)
{
    if (document.getElementById && document.getElementById(id))
        return document.getElementById(id);
    else if (document.id)
        return document.id;
    else if (document.all)
        return document.all.id;
    else
        return null;
}

function controls(n){
        var p,i,x,d=document;
        if(!(x=d.getElementById(n))&&d.all){x=d.all[n];}
        if(!x){for(i=0;!x&&i<d.forms.length;i++){x=d.forms[i][n];}
                if(!x){if(d.layers){for(i=0;!x&&d.layers&&i<d.layers.length;i++){x=controls(n,d.layers[i].document)}}}
        }
        return x;
}

function set_lang(lang) {
  setCookie('lang', lang);
  var loc=location.href;
  loc = loc.replace(/https?:\/\/(www\.)?spyterra\.com/, "");
  window.location.href="/cgi-bin/redirect.cgi?lang="+lang+"&url="+loc;
};

function submitonce(theform){
//if IE 4+ or NS 6+
if (document.all||document.getElementById){
 //screen thru every element in the form, and hunt down "submit" and "reset"
// for (i=0;i<theform.length;i++){
//  var tempobj=theform.elements[i]
//  if(tempobj.type.toLowerCase()=="submit"||tempobj.type.toLowerCase()=="reset")
//   //disable em
//   tempobj.disabled=true
//  }
 }
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;
  if(!d) d=document;
  if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
  }
  if(!(x=d[n])&&d.all) x=d.all[n];
  for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n);
  return x;
}


function FillName() {
var username = GetCookie('username');
var password = GetCookie('password');

if (username && password) {
 if (controls('div_form')) {
 controls('div_form').style.display = 'none';
 }
 if (controls('div_hello')) {
 controls('div_hello').innerHTML = "Welcome, <b>" + username + "</b>";
 }
 if (controls('div_menu')) {
 controls('div_menu').style.display = 'block';
 }
 // top menu Registration/Account
 if (MM_findObj('top_account')) {
 MM_findObj('top_account').innerHTML = '<a href="/cgi-bin/main.cgi?manage=account">Account</a>';


 }
}

if (username)        uname = username;
else                 uname = '';
if (controls('username')) {
controls('username').value = uname;
}
}


function ChangeAction(ObjectID, NewAction) {
 if (controls('ObjectID')) {
  controls('ObjectID').action = "/cgi-bin/"+NewAction;
 }
}


// Validate form
// by DimS y88@yandex.ru
var validateForm = '';
var validFields = new Array();
var obj_name    = 1;
var obj_type    = 2;
var obj_error   = 3;

function notValidField(obj, type) {
if (obj) {
        switch( type ) {
        case 'checkbox':
             if (!obj.checked ) {return 'must check checkbox.'}
             break;
        case 'select':
             if (!obj.options[obj.selectedIndex].value ) {return 'must selected.'}
             break;
        case 'number':
             if (!obj.value.match (/^[0-9\., ]+$/) ) {return 'must contain a number.'}
             break;
        case 'email':
             if (!obj.value.match (/^[^@]+@([^@\.]{2,}\.)+[^@\.]{2,}$/i)) {return 'must contain an e-mail address.'}
             break;
        case 'password':
             if (!obj.value.match (/^.{5,}$/)) {return 'must contain at least 5 symbols.'}
             break;
        default:
             if (obj.value.length<=0) {return 'is required.'}
    }
}
    return false;
}

function markFields() {
 var obj,valid,i;
 for (i=0; i<(validFields.length); i++) {
   obj = MM_findObj(validFields[i][0]);
   if (obj) {
     if (notValidField(obj, validFields[i][obj_type])) {
      if( obj.className.indexOf('fillError')==-1 ) {
        obj.className = obj.className+' fillError';
      }
     }else{
        obj.className = obj.className.replace(/fillError/g, '');
     }
   }
 }

 window.clearInterval(validateForm);
 validateForm = '';
 validateForm = window.setInterval("markFields()", 1000);
}


function DoValidateForm(theform) {
  var obj,obj_value,errors='';
  for (i=0; i<(validFields.length); i++) {
    obj = MM_findObj(validFields[i][0]);
    if (obj) {
     if (!validFields[i][obj_name]) {validFields[i][obj_name]=obj.name}
     obj_value = obj.value;

     if (err = notValidField(obj, validFields[i][obj_type])) {
        //error
        errors += '- '+validFields[i][obj_name]+' '+err;
        if (validFields[i][obj_error]) {
          errors += ' '+ validFields[i][obj_error];
        }
        errors += '\n';
     }

    }
  }
  if (errors) {
    alert('The following error(s) occurred:\n'+errors);
    return false;
  }else{
    submitonce(theform)
    return true;
  }
}
