function trim(s){ return         s.replace(/^(\s*)/,"$`").replace(/(\s*)$/,"$'"); }
function ajaxInit(url,oncomplete){
        url += ((url.indexOf('?'))?'&':'?')+'uniqueID=' + (new Date()).getTime();
        var req = (window.XMLHttpRequest) ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP");
        req.onreadystatechange = processRequest;
        function processRequest(){
                if (req.readyState == 4)
                        if (req.status == 200){
                                var response = req.responseText;
                                if (oncomplete!='') eval(oncomplete);
                        }
        }
        this.sendPost = function(postStr) {
                req.open("POST", url, true);
                req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                req.send(postStr);
        }
}
function preparePostVars(postVars){
        var first = new Boolean(true);
        var postStr = '';
        for (var pkey in postVars) {
                if (!first) postStr += "&";
                postStr += pkey + "=" + encodeURI(postVars[pkey]);
                first = false;
        }
        return postStr;
}
addEvent = function(obj,event,func){
        if(obj.addEventListener){ obj.addEventListener(event,func,false); return true; }
        else{ if(obj.attachEvent){ obj.attachEvent("on"+event,func); return true; } }
        return false;
}
function selectSinonimSelect(name){ hideSinonimSelect(name);
        var itemscont = $(name+'_items_container');
        if (itemscont.style.display == "none") itemscont.style.display = "block";
        else itemscont.style.display = "none";
}
function hideSinonimSelect(name){
                    jQuery(".iselect .items ").each(function() {
                         if(name) {
                              if(name+'_items_container'===this.id) return;
                         }
                         this.style.display='none'
                    })
}
function selectSinonimSetValue(name,value,obj){
        var showitem = $(name+'_show_item');
        var valueitem = $(name+'_value_item');
        showitem.innerHTML = obj.innerHTML;
        valueitem.value = value;
        //selectSinonimSelect(name);
        if (valueitem.onchange) valueitem.onchange();
}
function selectMSinonimSetValue(name,value,obj, handler){
        var showitem = $(name+'_show_item');
        var valueitem = $(name+'_value_item'+value);
        var noneselectname = '';

        if (name=='rsearchroomscount')
        noneselectname ='любое';
        else noneselectname ='любой';

        if(obj.className !='selected' && !obj.className.match('selected')) {
           obj.className='selected';



           if($(''+name+'_value_item0'+'') && showitem.innerHTML===noneselectname)
               $(''+name+'_value_item0'+'').remove();
        showitem.innerHTML = showitem.innerHTML.replace(noneselectname,"");
           v = []//';
           jQuery('#' + name+'_items_container span').each(function(){//alert();
               if((this).className.match('selected')){
                    v.push( jQuery('div', this).html());
               }
           })
           showitem.innerHTML=v.join(',');

           jQuery(obj).parent().parent().prepend('<input type="hidden" id="'+name+'_value_item'+value+''+""+'" name="'+name+'[]" value="'+value+'"/>');
        }
        else {

           obj.className='';
           $(''+name+'_value_item'+value+'').remove();

           var v=jQuery('div', obj)[0].innerHTML;


           v = []//';
           jQuery('#' + name+'_items_container span').each(function(){//alert();
               if((this).className.match('selected')){
                    v.push( jQuery('div', this).html());
               }
           })
           showitem.innerHTML=v.join(',');


        if(showitem.innerHTML =='') {			showitem.innerHTML =noneselectname;
            obj.parentNode.innerHTML += '<input type="hidden" id="'+name+'_value_item0'+""+'" name="'+name+'[]" value="-11">';
        }
        }
          showitem.parentNode.title=showitem.innerHTML;
        //selectSinonimSelect(name);
        if (handler) handler();
        return !true;
}
function selectMSinonimSetValueA(name,value, obj, e) {
     selectMSinonimSetValue(name,value, obj);

}
function selectSinonimShow(name){
        var itemscont = $(name+'_items_container');
        if (itemscont.style.display == "none") itemscont.style.display = "block";
}
function selectSinonimHide(name){
        var itemscont = $(name+'_items_container');
        if (itemscont.style.display == "block") itemscont.style.display = "none";
}
function getMonthDaysCount(m,y){
        m = parseInt(m,10) - 1; if (isNaN(m)) return 31;
        y = parseInt(y,10); if (isNaN(y)) return 31;
        var        VVMonths = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
        var        NVMonths = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
        if ((y%4)==0){ if ((y%100)==0 && (y%400)!=0) return VVMonths[m]; return NVMonths[m]; }
        else return VVMonths[m];
}
function getMonthName(m){
        m = parseInt(m,10) - 1; if (isNaN(m)) return '';
        var        monthsNames = ["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"];
        return monthsNames[m];
}
function validateDate(date){
        var error = false;
        var retval = new Date();
        date = date.split('.');
        var d = parseInt(date[0],10);
        var m = parseInt(date[1],10);
        var y = parseInt(date[2],10);
        if (isNaN(d) || isNaN(m) || isNaN(y)) error = true;
        if ((y<1000) || (y>3000)) error = true;
        if ((m<1) || (m>12)) error = true;
        if ((d<1) || (d>getMonthDaysCount(m,y))) error = true;
        if (!error) retval.setFullYear(y,m-1,d);
        d = retval.getDate().toString(); if (d.length==1) d = "0"+d;
        m = (retval.getMonth()+1).toString(); if (m.length==1) m = "0"+m;
        y = retval.getFullYear().toString();
        return d+'.'+m+'.'+y;
}
function htmlspecialchars(html){
        html = html.replace(/&/g, "&amp;");
        html = html.replace(/</g, "&lt;");
        html = html.replace(/>/g, "&gt;");
        html = html.replace(/"/g, "&quot;");
        return html;
}
function addslashes(str){ return str.replace('/(["\'\])/g', "\\$1").replace('/\0/g', "\\0"); }
function dumpObject(obj,name){
        var result = "";
        for (var i in obj)
                result += name + "." + i + " = " + obj[i] + "\n";
                // result += name + "." + i + " = " + obj.hasOwnProperty(i) + "\n";
                // result += name + "." + i + "\n";
        return result;
}
/* Автозаполнение полей  — НАЧАЛО */

var auto_browser = -1;

function auto_inputtext_select(txt, start_at){
        if (auto_browser == 0){ //ie, opera
                var tr = txt.createTextRange();
                tr.moveStart('character', start_at);
                tr.moveEnd('character', 0);
                tr.select();
        }
        else if (auto_browser == 1){ //mozilla
                txt.select();
                txt.selectionStart = start_at;
        }
}

function auto_setEnding(txt, ending){
        var tl = txt.value.length;
        txt.value += ending;

        txt.value = txt.value.substring(0,1).toUpperCase() + txt.value.substring(1);

        auto_inputtext_select(txt, tl);
}
function auto_getEnding(obj, beginning){
        eval("var ss = auto_"+obj.name+"_values");
        var i, c = ss.length;
        var bg = beginning.toLowerCase(), bl=beginning.length;
        var s;
        for (i=0; i<c; i++){
                s = ss[i];
                if (s.length > bl){
                        if (s.toLowerCase().indexOf(bg) == 0){
                                return s.substring(bl);
                        }
                }
        }
        return "";
}
function auto_onchange(obj){
        eval("var key = auto_"+obj.name+"_keyTyped;")
        eval("auto_"+obj.name+"_keyTyped = 0;")
        if (key == 0) return;
        var txt = $("auto_"+obj.name);
        auto_setEnding(txt, auto_getEnding(obj, txt.value));
}
function auto_onkeypress(obj, charCode, keyCode){
        if (charCode != undefined) k = charCode;
        else if (keyCode != undefined) k = keyCode;
        else k = 0;
        if (!(k>=97 && k<=122 || k>=65 && k<=90 || k>=48 && k<=57 || k>=1072 && k<=1103 || k>=1040 && k<=1071  || k==46 || k==44 || k==45 || k==95 || k==32 || k==58 || k==59 || k==35 || k==42)) k = 0;
        if ($("auto_"+obj.name).createTextRange == undefined) auto_browser = 1;
        else auto_browser = 0;
        eval("auto_"+obj.name+"_keyTyped = k;")
}
/* Автозаполнение полей  — КОНЕЦ */
var newWin = null;
function PopUp(loc_ie, name, width, height){
        var IE = navigator.appName=="Microsoft Internet Explorer";
        var NS = navigator.appName=="Netscape";
        var bVer = parseInt(navigator.appVersion);
        if (window.NewWindow == null || window.NewWindow.closed){
                var _params = "width="+width+",height="+height+",resizable=no,status=no,scrollbars=0";
                loc_ns = loc_ie;
                if (bVer>=4){
                        _left = ( (screen.width-width) >>1 );
                        _top = ( (screen.height-height) >>1 );
                }
                else{
                        _left = ( (800-width) >>1 );
                        _top = ( (600-height) >>1 );
                }
                if (NS) _params += ",screenX=" + _left + ",screenY=" + _top;
                else _params += ",top=" + _top + ",left=" + _left;
                if (NS) newWin = window.open(loc_ns, name, _params);
                else newWin = window.open(loc_ie, name, _params);
                if ( newWin!=null )
                newWin.focus();
        }
        else{
                window.NewWindow.location.href = loc_ie;
                window.NewWindow.focus();
        }
}
function navigate(direction) {
	// Check if any of the menu items is selected
	if(!jQuery("#auto_select_street span").size() == 0)
	{
     	if(direction == 'up')
     	{
			if(currentSelection != 0)
			{currentSelection--;}
		}
		else if (direction == 'down') {
			if(currentSelection != jQuery("#auto_select_street span").size() -1) {
				currentSelection++;
			}
		}
		setSelected(currentSelection);

	}

}
function AutoSelectHide(name){
        var itemscont = $('auto_select_'+name);
        if (itemscont.style.display == "block" || itemscont.style.display == "")
        itemscont.style.display = "none";
        currentSelection = -1;
}
function AutoSelectShow(name){
        var itemscont = $('auto_select_'+name);
        if (itemscont.style.display == "none")
        itemscont.style.display = "block";
}

function setSelected(menuitem) {
		jQuery("#auto_select_street span").removeClass("hoverd");
		jQuery("#auto_street_"+menuitem).addClass("hoverd");
		currentSelection=menuitem;
}
function setSelectedValue(menuitem) {
	$('street').value=jQuery("#auto_street_"+menuitem).text();
	$('auto_select_street').hide();
}