	// SDK
	
	var browserStr = new String(navigator.userAgent.toLowerCase());
		
//	var opera = browserStr.indexOf('opera');
//	var netscape = navigator.appName=='Netscape';		
	
	var hasDOM = document.getElementById?true:false;	
	
	function getElementById(id, objContainer) {

		var ie = browserStr.indexOf('msie');
		
		if (!objContainer) objContainer = document;
		
		if (hasDOM) return objContainer.getElementById(id);
		else if (ie) return objContainer.all[id];
		
	}
	
	function _getElementById(id, objContainer) {
		
		var ie = browserStr.indexOf('msie');
		
		if (!objContainer) objContainer = document;
		
		if (hasDOM) return objContainer.getElementById(id);
		else if (ie) return objContainer.all[id];		
		
	}
	
	function getFrame(frameName) {
		
		if (document.frames) return eval('document.frames.' + frameName);
		if (window.frames) return eval('window.frames.' + frameName);
		
	}
			
	function toggleDisplay(elementId) {
		
		if (_getElementById(elementId)) {
			
			element = _getElementById(elementId);
			
			if (element.style.display == 'none') 
				element.style.display = '';
				
			else element.style.display = 'none'
			
			return element.style.display;
			
		}
		
	}
	
	function toggleDisplayValue(elementId, toggleValue) {
		
		if (_getElementById(elementId)) {
			
			element = _getElementById(elementId);		
			element.style.display = toggleValue;
						
		}
		
	}
	
	function bindEvent(obj, eventName, func) {
	
		if (document.attachEvent)
			obj.attachEvent("on"+eventName, func);
		else if (document.addEventListener) {
			obj.addEventListener(eventName, func, 0);
		}
	
	}
	
	function eventElement(e) {
		
		evt = e;	
		
		switch (evt.type) {
		
			case "keyup":
			case "keydown":
			case "keypress":
			case "click": {
				return evt.srcElement?evt.srcElement:evt.target;
			} break;
			
			case "mouseover": {
				return evt.toElement?evt.toElement:evt.target;
			} break;
			
			case "mouseout": {
				return evt.fromElement?evt.fromElement:evt.target;
			} break;
		
		}
			
	}		
	
	function cancelBubble(e) {
	
		evt = e;
		
		if (evt.stopPropagation) 
			evt.stopPropagation();
		else
			evt.cancelBubble = true;
	
	}
	
	function isElementVisible(el) {
		
		var parentEl = el;
				
		do {			

			if (parentEl.style && parentEl.style.display == 'none') {
								
				return false;
				
			}
			
		} while (parentEl = getParentElement(parentEl));
		
		return true;
		
	}
	
	function getParentElement(el) {
				
		if (el.parentElement) 	return el.parentElement;
		if (el.parentNode) 		return el.parentNode;
		if (el.offsetParent) 	return el.offsetParent;
		
	}

// *************************************************************************************************

	function digitsCheck(event)
	{
		event = event || window.event;
		var target = event.target || event.srcElement;
		var isIE = document.all;
		var code = isIE ? event.keyCode : event.which;
		var char = String.fromCharCode(code);
		if (code < 32)
		{
			return true;
		}
		else
		{
			return ((code >= 48) && (code <= 57));
		}
	}	
	
	function firstNullsTruncate(string)
	{
		while((string != '') && (string.charAt(0) == '0'))
		{
			string = string.substr(1);
		}
		return string == '' ? '0' : string; 
	}
	
	function floatRoutine(object, alertMode)
	{
		var showAlert = false;
		var value = object.value;
		var initialValue = value;
		value = value.replace(/\s/g, "");
		value = value.replace(/,/g, ".");
		var tempValue = value;
		value = value.replace(/[^\d.-]/g, "");
		if(tempValue != value)
		{
			showAlert = true;
		}
		var sign = '';
		var dots = 0;
		while((value.charAt(0) == '-') || (value.charAt(0) == '.'))
		{
			if(value.charAt(0) == '.')
			{
				dots++;
			}
			sign = value.charAt(0);
			value = value.substr(1);
		}
		while((value.charAt(value.length - 1) == '-') || (value.charAt(value.length - 1)  == '.'))
		{
			if(value.charAt(value.length - 1) == '.')
			{
				dots++;
			}			
			value = value.substr(0, value.length - 1);
		}
		value = value.replace(/-/g, "");
		var dotPosition = value.indexOf('.');
		if(dotPosition != -1)
		{
			var intPart = value.substr(0, dotPosition);
			var fracPart = value.substr(dotPosition + 1);
			intPart = firstNullsTruncate(intPart);
			if((dots) || (fracPart.indexOf('.') != -1))
			{
				showAlert = true;
			}
			fracPart = fracPart.replace(/\./g, "");
			value = intPart + '.' + fracPart;
		}
		else
		{
			value = firstNullsTruncate(value);
		}
		if(value)
		{
			value = (sign == '-' ? '-' : '') + value;
		}
		else
		{
			value = '0';
		}
		if((value == '0') && (value != initialValue))
		{
			showAlert = true;
		}
		if((alertMode == 'on') && (showAlert))
		{
			alert("Значение поля будет скорректировано.\n\nВведенное значение: " + initialValue + "\nСкорректированное значение: " + value);
		}
		object.value = value;
	}

// *************************************************************************************************	

	function correctFloat() {
		
		if (window.event.keyCode==44) window.event.keyCode=46;
		
	}
	
	function checkUnsignedFloat() {
	
		if ((window.event.keyCode>=48) && (window.event.keyCode<=57) || (window.event.keyCode==8) || (window.event.keyCode==9) || (window.event.keyCode==36) || (window.event.keyCode==35) || (window.event.keyCode==46) || (window.event.keyCode>=37) && (window.event.keyCode<=40) || (window.event.keyCode>=96) && (window.event.keyCode<=105) || (window.event.keyCode==190) || (window.event.keyCode==110)) return true;
		return false;
	}	
	
	function checkUnsignedInt() {
	
		if ((window.event.keyCode>=48) && (window.event.keyCode<=57) || (window.event.keyCode==8) || (window.event.keyCode==9) || (window.event.keyCode==36) || (window.event.keyCode==35) || (window.event.keyCode==46) || (window.event.keyCode>=37) && (window.event.keyCode<=40) || (window.event.keyCode>=96) && (window.event.keyCode<=105)) return true;
		return false;
	}	
	
	function checkDate(str) {
	
		var dateStr=new String(str);
		var dateArray=dateStr.split('-');
		
		today=new Date();
		
		day=parseInt(dateArray[0]);
		month=parseInt(dateArray[1]);	
		year=parseInt(dateArray[2]);	
		
		if ((day>0 && day<32) && (month>0 && month<13) && (year>=today.getYear())) {
			return true;
		}
	
		return false;
	
	} 

	function toggleDisableInput(obj) {
		
			isDisabled = obj.getAttribute("disabled");
			
			if (!isDisabled)
				obj.setAttribute("disabled",true);
			else
				obj.setAttribute("disabled",false);
		/*
			var text=new String();
		
			text=obj.outerHTML;
			findDisabled=text.search('disabled');
			
			if (findDisabled>0) {
				text=text.substr(0,findDisabled)+text.substr(findDisabled+8);	
			} else {
				text=text.substr(0,text.length-2)+' disabled>';
			}
			obj.outerHTML=text;*/
		
	}
	
    function checkFloat() {
	
		//alert(window.event.keyCode);
		//event.keyCode = 110;
		
		if ((window.event.keyCode>=48) && (window.event.keyCode<=57) || (window.event.keyCode==8) || (window.event.keyCode==9) || (window.event.keyCode==36) || (window.event.keyCode==35) || (window.event.keyCode==46) || (window.event.keyCode>=37) && (window.event.keyCode<=40) || (window.event.keyCode>=96) && (window.event.keyCode<=105) || (window.event.keyCode==190) || (window.event.keyCode==189) || (window.event.keyCode==109) || (window.event.keyCode==110)) return true;
		return false;
	}	
    
	function setDisableInput(obj, disabled) {
		
		obj.setAttribute("disabled", disabled);
		
	}
	
	function radioButtonValue(obj) {
			
		if (!isNaN(obj.length)) {
		
			for (i=0; i<obj.length; i++) {
				
				if (obj[i].checked) return obj[i].value;
				
			}
			
		} else return obj.value;
		
		return false;
		
	}
	
	function radioButtonNumSet(obj) {
		
		if (!isNaN(obj.length)) {
		
			for (i=0; i<obj.length; i++) {
				
				if (obj[i].checked) return i;
				
			}
			
		} else if (obj.checked) return -1;
		
		return false;
		
	}
	
	function shrinkWindow(dx, dy) {
				
		newWidth = document.body.scrollWidth + dx;
		newHeight = document.body.scrollHeight + dy;
		
	
		if (newWidth > window.screen.width + 100) newWidth = window.screen.width - 100;
		if (newHeight > window.screen.height + 100) newHeight = window.screen.height - 100;
		
		newX = (window.screen.width - newWidth)/2;
		newY = (window.screen.height - newHeight)/2 - 10;
		
		window.resizeTo(newWidth, newHeight);
		window.moveTo(newX, newY);
		
	}
		
	function setCookie(cookieName, value, time, path) {

		if (!time) time = 977616000;		
		if (!path) path = "/";
		
		var exp = new Date();
		var newexp = exp.getTime() + time;
		exp.setTime(newexp);

		document.cookie = cookieName+"="+value+"; expires="+exp.toGMTString()+"; path="+path;
	}
	
	function getCookie(c_name)
		{
		if (document.cookie.length>0)
		  {
		  c_start=document.cookie.indexOf(c_name + "=");
		  if (c_start!=-1)
		    {
		    c_start=c_start + c_name.length+1;
		    c_end=document.cookie.indexOf(";",c_start);
		    if (c_end==-1) c_end=document.cookie.length;
		    return unescape(document.cookie.substring(c_start,c_end));
		    }
		  }
		return "";
		}


	function changeImg(img_c,el_id_or_obj){

			if(el_id_or_obj){
				el_id = document.getElementById(el_id_or_obj);
				if(el_id){
					el_id.src=img_c;
				}else{
					el_id_or_obj.src=img_c;
				}		
			}
			
			return "";
	}
	
	function trim(str) {
		
		return str.replace(/^\s+|\s+$/g, "");
		
	}
