var uagent    = navigator.userAgent.toLowerCase();
var is_safari = ( (uagent.indexOf('safari') != -1) || (navigator.vendor == "Apple Computer, Inc.") );
var is_ie     = ( (uagent.indexOf('msie') != -1) && (!is_opera) && (!is_safari) && (!is_webtv) );
var is_ie4    = ( (is_ie) && (uagent.indexOf("msie 4.") != -1) );
var is_moz    = (navigator.product == 'Gecko');
var is_ns     = ( (uagent.indexOf('compatible') == -1) && (uagent.indexOf('mozilla') != -1) && (!is_opera) && (!is_webtv) && (!is_safari) );
var is_ns4    = ( (is_ns) && (parseInt(navigator.appVersion) == 4) );
var is_opera  = (uagent.indexOf('opera') != -1);
var is_kon    = (uagent.indexOf('konqueror') != -1);
var is_webtv  = (uagent.indexOf('webtv') != -1);

var is_win    =  ( (uagent.indexOf("win") != -1) || (uagent.indexOf("16bit") !=- 1) );
var is_mac    = ( (uagent.indexOf("mac") != -1) || (navigator.vendor == "Apple Computer, Inc.") );
var ua_vers   = parseInt(navigator.appVersion);

var horizontal_offset="-250px" 

var vertical_offset="25px" 

var ie=document.all
var ns6=document.getElementById&&!document.all

function getposOffset(what, offsettype) 
	{
		var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
		var parentEl=what.offsetParent;
		while (parentEl!=null)
			{
				totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
				parentEl=parentEl.offsetParent;
			}
		return totaloffset;
	}

function iecompattest()
	{
		return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
	}

function clearbrowseredge(obj, whichedge)
	{
		var edgeoffset=(whichedge=="rightedge")? parseInt(horizontal_offset)*-1 : parseInt(vertical_offset)*-1
		if (whichedge=="rightedge")
			{
				var windowedge=ie && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-30 : window.pageXOffset+window.innerWidth-40
				dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
				if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
				edgeoffset=dropmenuobj.contentmeasure+obj.offsetWidth+parseInt(horizontal_offset)
			}
				else
			{
				var windowedge=ie && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
				dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
				if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure)
				edgeoffset=dropmenuobj.contentmeasure-obj.offsetHeight
			}
		return edgeoffset
	}

function showhint(menucontents, obj, e, tipwidth)
	{
		if ((ie||ns6) && document.getElementById("hintbox"))
			{
				dropmenuobj=document.getElementById("hintbox")
				dropmenuobj.innerHTML=menucontents
				dropmenuobj.style.left=dropmenuobj.style.top=-500
				if (tipwidth!="")
					{
						dropmenuobj.widthobj=dropmenuobj.style
						dropmenuobj.widthobj.width=tipwidth
					}
				dropmenuobj.x=getposOffset(obj, "left")
				dropmenuobj.y=getposOffset(obj, "top")
				dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth+"px"
				dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+"px"
				dropmenuobj.style.visibility="visible"
				obj.onmouseout=hidetip
			}
	}

function hidetip(e)
	{
		dropmenuobj.style.visibility="hidden"
		dropmenuobj.style.left="-500px"
	}

function createhintbox()
	{
		var divblock=document.createElement("div")
		divblock.setAttribute("id", "hintbox")
		document.body.appendChild(divblock)
	}

if (window.addEventListener) window.addEventListener("load", createhintbox, false)
	else if (window.attachEvent) window.attachEvent("onload", createhintbox)
	else if (document.getElementById) window.onload=createhintbox

function only_eng(obj, event)
	{
		if (obj.value != '')
			{
		    var reg = /^[a-zA-Z0-9]{0,}$/;
		    var res = obj.value.match(reg);
		    while(res == null) 
					{
	          obj.value = obj.value.substr(0,obj.value.length-1)
	          res = obj.value.match(reg);
						showhint('Пожалуйста введите только символы английского алфавита, или цифры.', obj, event, '300px');
          }
			}
	}

function only_eng2(obj, event)
	{
		if (obj.value != '')
			{
		    var reg = /^[a-zA-Z0-9_]{0,}$/;
		    var res = obj.value.match(reg);
		    while(res == null) 
					{
	          obj.value = obj.value.substr(0,obj.value.length-1)
	          res = obj.value.match(reg);
						showhint('Пожалуйста введите только символы английского алфавита, цифры или знак подчеркивания.', obj, event, '300px');
          }
			}
	}

function only_digits(obj, event)
	{
		if (obj.value != '')
			{
				var reg = /^[0-9]{0,}$/;
		    var res = obj.value.match(reg);
		    while(res == null) 
					{
	          obj.value = obj.value.substr(0,obj.value.length-1)
	          res = obj.value.match(reg);
						showhint('Пожалуйста введите только цифры', obj, event, '300px');
          }
			}
	}

function only_percent(obj, event)
	{
		if (obj.value != '')
			{
				var reg = /^[0-9%]{0,}$/;
		    var res = obj.value.match(reg);
		    while(res == null) 
					{
	          obj.value = obj.value.substr(0,obj.value.length-1)
	          res = obj.value.match(reg);
						showhint('Пожалуйста введите только цифры и знак процента', obj, event, '300px');
          }
			}
	}

function only_email(obj, event)
	{
		if (obj.value != '')
			{
		    //var reg = /^[a-zA-Z.@_0-9-]{0,}$/;
				var reg = /^[a-zA-Z.@_0-9-]{0,}$/;
				//var reg = /^[\w]?[a-zA-Z0-9-]{0,}[@]?[a-zA-Z0-9-]{0,}[.]?[a-zA-Z0-9-]{0,}$/;
		    var res = obj.value.match(reg);
		    while(res == null) 
					{
	          obj.value = obj.value.substr(0,obj.value.length-1)
	          res = obj.value.match(reg);
						showhint('Пожалуйста введите только символы латинского алфавита, цифры, -, _, ., @.', obj, event, '300px');
          }
			}
	}
function doInsert(ibTag, ibClsTag, isSingle)
	{
		var isClose = false;
		var obj_ta = inPOST.text;
	
		if ((ua_vers >= 4) && is_ie && is_win)
			{
				if (obj_ta.isTextEdit)
					{
						obj_ta.focus();
						var sel = document.selection;
						var rng = sel.createRange();
						rng.colapse;
						if ((sel.type == "Text" || sel.type == "None") && rng != null)
							{
								if(ibClsTag != "" && rng.text.length > 0)	ibTag += rng.text + ibClsTag;
									else if(isSingle) isClose = true;
								rng.text = ibTag;
							}
					}
						else
					{
						if (isSingle)
							{
								isClose = true;
							}
						obj_ta.value += ibTag;
					}
			}
		else if (obj_ta.selectionEnd)
			{ 
				var ss = obj_ta.selectionStart;
				var st = obj_ta.scrollTop;
				var es = obj_ta.selectionEnd;
				if (es <= 2)
					{
						es = obj_ta.textLength;
					}
				var start  = (obj_ta.value).substring(0, ss);
				var middle = (obj_ta.value).substring(ss, es);
				var end    = (obj_ta.value).substring(es, obj_ta.textLength);
				if (obj_ta.selectionEnd - obj_ta.selectionStart > 0)
					{
						middle = ibTag + middle + ibClsTag;
					}
						else
					{
						middle = ibTag + middle;
						if (isSingle)
							{
								isClose = true;
							}
					}
				obj_ta.value = start + middle + end;
				var cpos = ss + (middle.length);
				obj_ta.selectionStart = cpos;
				obj_ta.selectionEnd   = cpos;
				obj_ta.scrollTop      = st;
			}
				else
			{
				if (isSingle)
					{
						isClose = true;
					}
				obj_ta.value += ibTag;
			}
		obj_ta.focus();
		return isClose;
	}	

