var req;
var reqtimeout;
function trim(s){ return 	s.replace(/^(\s*)/,"$`").replace(/(\s*)$/,"$'"); }
function ajaxInit(url,oncomplete,onerror){
	url += '?uniqueID=' + (new Date()).getTime();
	req = (window.XMLHttpRequest) ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP");
	req.onreadystatechange = processRequest;
	// req.ftimeout = function(){
		// req.abort();
		// if (onerror) eval(onerror);
	// }
	reqtimeout = setTimeout("ftimeout('"+onerror+"');",10*60*1000);
	function processRequest(){
		if (req.readyState == 4){
			if (req.status == 200){
				clearTimeout(reqtimeout);
				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 ftimeout(onerror){
	req.abort();
	if (onerror) eval(onerror);
}
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){
	var itemscont = $(name+'_items_container');
	if (itemscont.style.display == "none"){
		itemscont.style.display = "block";
	}
	else{
		itemscont.style.display = "none";
	}
}
function selectSinonimSelectHide(name){
	var itemscont = $(name+'_items_container');
	itemscont.style.display = 'none';
	clearTimeout(itemscont.timeout);
	itemscont.onmouseover = '';
}
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 selectSinonimSetValue(name,value,obj){
	var showitem = $(name+'_show_item');
	var valueitem = $(name+'_value_item');
	/* showitem.innerHTML = obj.innerHTML; */
	if (obj.innerHTML=='&nbsp;') newvalue='';
	else  newvalue=obj.innerHTML;
	showitem.value = newvalue;
	valueitem.value = value;
	selectSinonimSelect(name);
	if (valueitem.onchange) valueitem.onchange();
}




jQuery(document).ready(function(){

	jQuery('.suggestSelect').focus(function(){
		var name = jQuery(this).attr("id").replace('_show_item', '');
		jQuery(this).attr('value', "");

		var valueitem = $(name+'_value_item');
		valueitem.value = '0';

	});

	jQuery('.suggestSelect').keyup(function(){

		var name = jQuery(this).attr("id").replace('_show_item', '');
		var itemscont = $(name+'_items_container');

		var strrr = jQuery('#'+name+'_show_item').attr('value');

		if (strrr.length > 0) {

			if (itemscont.style.display == "none") itemscont.style.display = "block";

			jQuery('#'+name+'_items_container a').css("display", "none").filter(function (index) {  /*  */

				return jQuery(this).attr('title').indexOf(strrr.toLowerCase()) > -1;
	                }).css("display", "block");


		} else {

			itemscont.style.display = "block";
			jQuery('#'+name+'_items_container a').css("display", "block");

		}


	});

});




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 setButtonDisabled(id,disabled){
	var mspan = $(id);
	if (mspan){
		var msinput = false;
		for (var i=0; i<mspan.childNodes.length; i++) if (mspan.childNodes[i].tagName=="INPUT") msinput = mspan.childNodes[i];
		if (msinput) msinput.disabled = disabled;
		if (disabled) mspan.className = mspan.className+' disabled';
		else mspan.className = mspan.className.replace(/\sdisabled/i, "");
	}
}
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 showLightViewWindow(id,title){
	Lightview.show({
		href: '#'+id,
		rel: 'inline',
		title: title,
		options: {
			width: 640,
			height: 480,
			scrolling: true
		}
	});
}
function checkUncheckAll(obj,name){
	var newchecked = obj.checked;
	var checkname = new RegExp(name);
	var checks = document.getElementsByTagName("INPUT");
	for (var i=0; i<checks.length; i++){
		if (checks[i].type=="checkbox"){
			if (checks[i].name.match(checkname)){
				checks[i].checked = newchecked;
			}
		}
	}
}
function InputAllowNumbersOnly(inp){
	var s = new String;
	s = "";
	var found_non_zero = 0;
	for (i=0; i<inp.value.length; i++){
		c = inp.value.charAt(i);
		if ((c=='0') || (c=='1') || (c=='2') || (c=='3') || (c=='4') || (c=='5') || (c=='6') || (c=='7') || (c=='8') || (c=='9')){
			if (c!='0') found_non_zero = 1;
			if ((c!='0') || ((c=='0') && (found_non_zero==1))) s+=c;
		}
	}
	if (s.length>0)	inp.value = s; else inp.value = '';
}
function addTagToInput(objname,tag){
	if (trim(tag)!=''){
		var obj = false;
		var objlist = document.getElementsByName(objname);
		for (var i=0; i<objlist.length; i++) if (objlist[i].tagName=='INPUT') obj = objlist[i];
		if (obj) if (obj.value.search(tag)<0) obj.value = obj.value+((trim(obj.value)!='')?', ':'')+tag;
	}
}
function addTagTAGToInput(objname,tag){
	if (trim(tag)!=''){
		var obj = false;
		var objlist = document.getElementsByName(objname);
		for (var i=0; i<objlist.length; i++) if (objlist[i].tagName=='INPUT') obj = objlist[i];
		if (obj) if (obj.value.search(tag)<0) obj.value = obj.value+((trim(obj.value)!='')?'| ':'')+tag;
	}
}
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 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();
        }
}
