function padlength(what){ var output=(what.toString().length==1)? "0"+what : what;return output;}

var montharray=new Array("января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря");
var dayarray=new Array("воскресенье","понедельник","вторник","среда","четверг","пятница","суббота");
var serverdate=new Date(currenttime);

function displaytime(){ serverdate.setSeconds(serverdate.getSeconds()+1); var datestring=padlength(dayarray[serverdate.getDay()]+", "+serverdate.getDate()+" "+montharray[serverdate.getMonth()]+" "+serverdate.getFullYear()+", "); var timestring=padlength(serverdate.getHours())+":"+padlength(serverdate.getMinutes()); document.getElementById("servertime1").innerHTML=timestring; document.getElementById("servertime2").innerHTML=datestring; }
function cl(){ setInterval("displaytime()", 1000);}

function empty(mixed_var){var key;if(mixed_var===""||mixed_var===0||mixed_var==="0"||mixed_var===null||mixed_var===false||mixed_var===undefined){return true}if(typeof mixed_var=='object'){for(key in mixed_var){return false}return true}return false}

function msgEscape(msg){if(typeof(msg)=='undefined'||!msg||msg=='')return;msg=msg.replace(/%/g,"%25");msg=msg.replace(/ /g,"%20");msg=msg.replace(/\+/g,"%2B");msg=msg.replace(/\&/g,"%26");return msg}

function TrimAll(strValue){var objRegExp=/^(\s*)$/;if(objRegExp.test(strValue)){strValue=strValue.replace(objRegExp,'');if(strValue.length==0)return strValue}objRegExp=/^(\s*)([\W\w]*)(\b\s*$)/;if(objRegExp.test(strValue)){strValue=strValue.replace(objRegExp,'$2')}return strValue}

function CheckEmail(strValue){var emailPattern=/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,5}$/;return emailPattern.test(strValue)}

function CheckNull(strValue){var strTemp=strValue;strTemp=TrimAll(strTemp);if(strTemp.length>0){return true}return false}

function CheckLatinNumbers(strValue){var objRegExp=/^[A-Za-z0-9]*$/;return objRegExp.test(strValue)}

function CheckLatin(strValue){var objRegExp=/^[A-Za-z]/;return objRegExp.test(strValue)}

function CheckNumber(strValue){var objRegExp=/(^-?\d\d*\.\d*$)|(^-?\d\d*\,\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)|(^-?\,\d\d*$)/;return objRegExp.test(strValue)}

function CheckCountNumber(strValue,param){var objRegExp=/(^-?\d\d*\.\d*$)|(^-?\d\d*\,\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)|(^-?\,\d\d*$)/;if(objRegExp.test(strValue)){if(parseFloat(strValue)>=parseFloat(param))return true}return false}

function CheckNumberEmpty(strValue){var objRegExp=/(^-?\d\d*\.\d*$)|(^-?\d\d*\,\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)|(^-?\,\d\d*$)/;if(!CheckNull(strValue)){return true}return objRegExp.test(strValue)}

function CheckYearEmpty(strValue){var objRegExp=/^(19|20)\d\d/;if(!CheckNull(strValue)){return true}return objRegExp.test(strValue)}

function CheckYear(strValue){var objRegExp=/^(19|20)\d\d/;return objRegExp.test(strValue)}

function CheckDate(strValue){var objRegExp=/^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;if(!CheckNull(strValue)){return true}if(!objRegExp.test(strValue))return false;else{var strSeparator=strValue.substring(2,3);var arrayDate=strValue.split(strSeparator);var arrayLookup={'01':31,'03':31,'04':30,'05':31,'06':30,'07':31,'08':31,'09':30,'10':31,'11':30,'12':31}; var intDay=parseInt(arrayDate[0],10);if(arrayLookup[arrayDate[1]]!=null){if(intDay<=arrayLookup[arrayDate[1]]&&intDay!=0)return true}var intMonth=parseInt(arrayDate[1],10);if(intMonth==2){var intYear=parseInt(arrayDate[2]);if(intDay>0&&intDay<29){return true}else if(intDay==29){if((intYear%4==0)&&(intYear%100!=0)||(intYear%400==0)){return true}}}}return false}

function Checker(CheckFn,errorFld){return function(value){if(CheckFn(value)){document.getElementById(errorFld).style.display="none";return true}else{document.getElementById(errorFld).style.display="inline";return false}}}

function CheckerAlert(CheckFn,errorFld){return function(value){if(CheckFn(value)){return true}else{alert(errorFld);return false}}}

function CheckerAlertParams(CheckFn,errorFld,param){return function(value){if(CheckFn(value,param)){return true}else{alert(errorFld);return false}}}

function ValidateForm(vForm,errorFld,fields){retVal=true;for(elem in fields){retVal=fields[elem](vForm[elem].value)&&retVal}if(!retVal){if(errorFld!=""){document.getElementById(errorFld).style.display="block"}}return retVal}

function NormalizeForm(vForm){for(elem in vForm){if(vForm[elem]&&(vForm[elem].type=="text")){vForm[elem].value=TrimAll(vForm[elem].value)}}return true}

function HideErr(fields){for(elem in fields){document.getElementById(fields[elem]).style.display="none"}return true}

function CheckedFld(){if(arguments[2]){setVal=arguments[2]}else{setVal=false}if(document.getElementById(arguments[1]).checked==setVal){for(args in arguments[0]){if(!document.getElementById(arguments[0][args]).disabled){document.getElementById(arguments[0][args]).checked=setVal}}}return true}

function ChangeColor(obj,base,need){if(obj.className==need){obj.className=base}else{obj.className=need}}

function ShowBlock(id,display){var obj=document.getElementById(id);if(obj.style.display==display){obj.style.display='none';return false}else{obj.style.display=display;return true}}

function getPhraseTypeByCount(count){var a=Math.abs(count);var b=a%100;var c=a%10;if((b>10&&b<20)||(c==0)||(c>4)){return 2}else if(c==1){return 0}else if((c==2)||(c==3)||(c==4)){return 1}}

function alertWnd(params) {
    /* params = {text: text of message,
                 className: class of message window,
                 elem: id of elem to insert message window 
                 time: how many miliseconds would message shown
                 clear: clear default classes or not  
    */
var i=parseInt(params.time,10);if(i=='undefined'||isNaN(i)||i<=0){params.time=2500}if(typeof(params.className)=='undefined'){params.className=""}var d=new Date();var wnd=document.createElement('div');if(!params.clear){wnd.className="bg-grey clear errorWnd"+" "+params.className}else{wnd.className=params.className}wnd.id="error"+d.getTime();var closeElem=document.createElement('div');closeElem.className="close";closeElem.innerHTML="X";closeElem.click=function(){document.removeChild(wnd)};wnd.appendChild(closeElem);var textElem=document.createElement('div');textElem.className="text";textElem.innerHTML=params.text;wnd.appendChild(textElem);if(typeof(params.elem)!='undefined'){document.getElementById(params.elem).appendChild(wnd)}else{document.getElementsByTagName('body')[0].appendChild(wnd)}setTimeout('$("#'+wnd.id+'").hide()',params.time);}

function escapeHTML(str){var div=document.createElement('div');var text=document.createTextNode(str);div.appendChild(text);return div.innerHTML};