// картинку дали 800*570; почему нужно отнимать 5 (или 3 для IE) от ширины для корректного отображения - не знаю
var commonWidth='795';
var commonHeight='570';
// баннер - размеры 468*60
var bannerWidth='468';
var bannerHeight='60';
var footerHeight = '20';         

// это для отправки сообщения
var textLength=0; // сначала, потом меняется
var msgDelayMinutes = 3; // задержка по умолчанию

var timeRedirect = 10; //через сколько секунд должен  происходить редирект со страницы msg
var timeCookie = 300000; // миллисекунд?

var calendarInput;

var cnt=0;

var curDt=new Date();
var curYear = curDt.getFullYear();


// file: pagequery_api.js
// javascript query string parsing utils
// pass location.search to the constructor: var page = new PageQuery(location.search)
// get values like: var myValue = page.getValue("param1") etc.
// djohnson@ibsys.com {{djohnson}}
// you may use this file as you wish but please keep this header with it thanks


var page = new PageQuery(location.search);


function getCookie(name)
{
   var end
   var start=document.cookie.indexOf(name+"=");
   var len=start+name.length+1;

   if((!start) && (name!=document.cookie.substring(0,name.length)))
      return null;
   if(start==-1)
      return null;
   end=document.cookie.indexOf(";",len);
   if(end==-1)
      end=document.cookie.length;
   return unescape(document.cookie.substring(len,end));
}

function setCookie(name,value)
{
   var   expires=new Date();
   expires=new Date(expires.getTime() + timeCookie);

   document.cookie=name+"="+escape(value)
      +((expires)?";expires="+expires.toGMTString():"")
      +";path=/";
}

function removeCookie(name)
{
   var   expires=new Date();
   expires=new Date(expires.getTime()-timeCookie);

   document.cookie=name+"="+escape(value)
      +((expires)?";expires="+expires.toGMTString():"")
      +";path=/";
}



function CalcUsingBackSize()
    { //alert(commonWidth + ';' +commonHeight);
     
      if (Number(document.body.clientWidth) > Number(commonWidth))
        {left0=String((Number(document.body.clientWidth) - Number(commonWidth))/2);
         leftBanner=String((Number(document.body.clientWidth) - Number(bannerWidth))/2); 
        }
        else
        {left0='0';
         leftBanner=String((Number(commonWidth) - Number(bannerWidth))/2); 
        }      
      
      if (Number(document.body.clientHeight) > Number(commonHeight))
        {top0=String((Number(document.body.clientHeight) - Number(commonHeight))/2);
        }
        else
        {top0='0';
        }   
              
        topContent=String(Number(top0) + 110);
        topFooter=String(Number(top0) + Number(commonHeight) - Number(footerHeight));                        
        // потом отцентрируется по высоте ???
        topBanner=String(Number(topFooter) - bannerHeight - 4);

    } 



function onResizeMainForm()
    {
      CalcUsingBackSize();

      document.getElementById("back").style.top = top0;
      document.getElementById("back").style.left = left0;
      document.getElementById("content").style.top = topContent;
      document.getElementById("content").style.left = left0;
      document.getElementById("footer").style.top = topFooter;      
      document.getElementById("footer").style.left = left0;

      // banner      
      document.getElementById("ban").style.top = topBanner;
      document.getElementById("ban").style.left = leftBanner;      
    }


function countTextLength()
  {
	textLength=document.getElementById("message").value.length;
	document.getElementById("textLengthId").value=String(textLength);
  }


function SetMessage(a_message)
    {document.getElementById("message").value=a_message;
     countTextLength(); // и выставить длину сообщения
    }


function redirectURL()
{
 var url=page.getValue("url");
 // var url=getCookie("SMSurl"); // раньше URL брался из куков
 if (null==url)
	{url="";
	}
 return unescape(url);
}



function DrawCalendarInput()
{//выставить  в календаре текущее время + msgDelayMinutes

    var dt=new Date(); // делаю каждый раз новый объект, т.к. у Date нет метода 
    // просто для обновления текущей даты (если например день сменился)

    dt.setTime(dt.getTime() + msgDelayMinutes * 60000);
    
    var day  = dt.getDate();
    var month = dt.getMonth()+1;
    var year = dt.getFullYear();
    var hour = dt.getHours();
    var minute = dt.getMinutes();


    // если тек. месяц - январь, то сделать minYear в календаре - прошлый год, maxYear - текущий;
    // если декабрь, то minYear - текущий, maxYear - следующий
    var minYear=year;
    var maxYear=year;
    if (1==month)	
	minYear--;
    else if (12==month)
	maxYear++;

    // идет рисовка календаря на document; спрятаны только секунды, которые потом выставляются в 0.
    calendarInput.DrawCalendarInput(minYear, maxYear, false, false, false, false, false, true);
    calendarInput.DrawDate(year, month, day, hour, minute, 0);
}


function DataToCookies(is_new_user)
{
 // если НЕ is_new_user (т.е. была форма посылки сообщения), 
 // то появляются дополнительные куки, иначе только логин
 setCookie("user", document.getElementById("user").value);
 if (!is_new_user)
	{setCookie("phones", document.getElementById("phones").value);
	 setCookie("message", document.getElementById("message").value);
	 setCookie("priority", document.getElementById("priority").value);
	}  
}

function DataFromCookies(is_new_user)
{
 // если НЕ is_new_user (т.е. была форма посылки сообщения), 
 // то появляются дополнительные куки, иначе только логин


 var slogin=getCookie("user");
 var sphones=getCookie("phones");
 var smessage=getCookie("message");
 var spriority=getCookie("priority");


 document.getElementById("user").value=(slogin==null?"":slogin);
 if (!is_new_user)
	{document.getElementById("phones").value=(sphones==null?"":sphones);
	 SetMessage(smessage==null?"":smessage); // там же считается кол-во символов в сообщении
	 document.getElementById("priority").value=(spriority==null?"1":spriority);
  	// чекбокс "немедленно" устанавливается всегда на true, в связи с отказом брать время из cookies
  	document.getElementById("send_now").checked=true;
	}   
}


function sendsmsSubmit()
{// проверить - если пустой логин/пароль/телефоны/сообщение, то ругаться; 
 //время не проверять, его проверит action (сервер)

 var slogin=document.getElementById("user").value.toLowerCase();
 var spwd=document.getElementById("pwd").value;
 var sphones=document.getElementById("phones").value;
 var smessage=document.getElementById("message").value;
 var send_now=document.getElementById("send_now").checked;

 // заменить пробелы в логине на "" (пустые символы), это здесь доступно
 while(slogin.indexOf(" ")>=0) {slogin=slogin.replace(" ", "");}
 // начальные и конечные пробелы в phones и message обрезаются в action, здесь это сложно
 
 if (slogin.length<1 || spwd.length<1 || sphones.length<1 || smessage.length<1)
	{alert("Одно из полей не заполнено!");
  	 return false;
	} 

 // и если слишком длинные поля, то ругаться тоже
 if (slogin.length>64 || spwd.length>64 || sphones.length>7 || smessage.length>56)
	{alert("Одно из полей слишком длинное!");
  	 return false;
	}  

 DataToCookies(false);

 // сотворить translit сообщения - ПОСЛЕ cookies! и запихнуть его 
 // в соотв. элемент формы для отправки на сервер
 document.getElementById("message").value=translit(smessage);

 // если стоИт флажок "отправить немедленно", то сгенерировать тек. время 
 // (без стандартной задержки!) в календаре;
 // иначе взять из календаря зачение, выставленное пользователем; 
 // в строке между датой и временем делается 1 пробел (сервер понимает 1 разделитель);
 // а т.к. секунды не нужны, то забираем только первые 16 символов строки.

 if (send_now)
	calendarInput.DrawCurrentDate();
 
 document.getElementById("timesend").value=calendarInput.GetDateTimeString(' ').substring(0, 16);	  

 // выполнить action - посылка сообщения
 document.sendsms.action.value='sendsms';
 document.sendsms.submit(); // Проверка и отправка данных на сервер
 return false; // именно false а то проходит лишний POST!

}


function sendsmsTranslit()
{var smessage=document.getElementById("message").value;
 SetMessage(translit(smessage));
 // и запомнить содержимое на всякий случай
 DataToCookies(false); 
}


function newuserSubmit()
{// проверить - если пустой логин/пароль, то ругаться


 var slogin=document.getElementById("user").value.toLowerCase();
 var spwd=document.getElementById("pwd").value;
 var spwd2=document.getElementById("pwd2").value;

// alert("slogin=" + slogin + "   spwd=" + spwd + "   spwd2=" + spwd2);


 if (slogin.length<1 || spwd.length<1 || spwd2.length<1)
	{alert("Одно из полей не заполнено!");
  	 return false;
	}

 // и если пароль не совпадает с подтверждением пароля, то тоже ругаться
 if (spwd != spwd2)
	{alert("Пароль не эквивалентен подтверждению!");
  	 return false;
	}

 // и если слишком длинные поля, то ругаться тоже
 if (slogin.length>64 || spwd.length>64 || spwd2.length>64)
	{alert("Одно из полей слишком длинное!");
  	 return false;
	} 


 DataToCookies(true);
 // выполнить action - регистрация
 document.newuser.action.value='register';
 document.newuser.submit(); // Проверка и отправка данных на сервер
// return true;
 return false; // именно false а то проходит лишний POST!

}


function accountdataSubmit()
{// проверить - если пустой логин, то ругаться
 var slogin=document.getElementById("user").value.toLowerCase();

 if (slogin.length<1)
	{alert("Поле не заполнено!");
  	 return false;
	}

 // и если слишком длинные поля, то ругаться тоже
 if (slogin.length>64)
	{alert("Поле слишком длинное!");
  	 return false;
	} 


 DataToCookies(true);
 // выполнить action - регистрация
 document.accountdata.action.value='sendaccountdata';
 document.accountdata.submit(); // Проверка и отправка данных на сервер
// return true;
 return false; // именно false а то проходит лишний POST!
}

