function getRadioValue(radioObject)
{for(var i=0,l=radioObject.length;i<l;i++)
{if(radioObject[i].checked)
{return radioObject[i].value;break;}}
return null;}
function cleanSelectObj(selObj,i)
{if(selObj.options.length>0)
{if(i==null)
{while(selObj.options.length){selObj.options[0]=null;}}
else{selObj.options[i]=null;}}}
function setSelectIndex(selObj,val)
{if(selObj.options.length>0)
{selObj.options[0].selected=true;for(var i=0,l=selObj.options.length;i<l;i++)
{if(selObj.options[i].value==val)
{selObj.options[i].selected=true;return true;}
else selObj.options[i].selected=false;}}
return false;}
function setMultiSelectIndex(selObj,values)
{if(values!=null){var len=values.length;}
else{var len=0;}
if(len>1)
{var str=','+values.toString()+',';for(var i=0,l=selObj.options.length;i<l;i++)
{var re=new RegExp('[,]'+selObj.options[i].value+'[,]',"ig");selObj.options[i].selected=(re.test(str))?true:false;}}
else if(len==1)
{for(var i=0,l=selObj.options.length;i<l;i++)
{selObj.options[i].selected=(selObj.options[i].value==values[0])?true:false;}}
else
{for(var i=0,l=selObj.options.length;i<l;i++)
{selObj.options[i].selected=false;}}}
function setAllMultiSelectIndex(selObj,sel)
{if(selObj.tagName!='SELECT'||!selObj.multiple)return false;if(sel==null)sel=true;else sel=sel?true:false;for(var i=0,l=selObj.options.length;i<l;i++)
{selObj.options[i].selected=sel;}
return true;}
function getSelectValue(selectObject)
{if(selectObject.options.length)
{return selectObject.options[selectObject.selectedIndex].value;}
return null;}
function getSelectText(selectObject)
{if(selectObject.options.length)
{return selectObject.options[selectObject.selectedIndex].text;}
return null;}
function dropFormElements(formObj,el_name)
{var len=formObj.elements.length;var elObj;if(el_name==null)
{for(var i=0;i<len;i++)
{elObj=formObj.elements[i];switch(elObj.type)
{case"select-one":case"select":for(var j=0,c=elObj.options.length;j<c;j++){elObj.options[j].selected=(j==0)?true:false;}
break;case"select-multiple":for(var j=0,c=elObj.options.length;j<c;j++){elObj.options[j].selected=false;}
break;case"text":case"textarea":case"password":elObj.value="";break;case"checkbox":elObj.checked=false;break;default:break;}}}
else
{for(var i=0;i<len;i++)
{elObj=formObj.elements[i];if(elObj.name==el_name)
{switch(elObj.type)
{case"select-one":case"select":for(var j=0,c=elObj.options.length;j<c;j++){elObj.options[j].selected=(j==0)?true:false;}
break;case"select-multiple":for(var j=0,c=elObj.options.length;j<c;j++){elObj.options[j].selected=false;}
break;case"text":case"textarea":case"password":elObj.value="";break;case"checkbox":elObj.checked=false;break;default:break;}}}}}
function FromSelToSel(fromList,toList,mode)
{if(fromList.options.length==0)return false;if(mode!="move"&&mode!="rewrite"&&mode!="add"&&mode!="copy")return false;var ind;if(mode=="move")
{for(var n=0;n<fromList.options.length;n++)
{if(fromList.options[n].selected==true)
{toList.options[toList.length]=new Option(fromList.options[n].text,fromList.options[n].value);fromList.options[n]=null;n--;}}
return true;}
else if(mode=="rewrite"){cleanSelectObj(toList);ind=toList.options.length;}
else if(mode=="add"){ind=toList.options.length;}
else if(mode=="copy"){ind=0;}
for(var n=0,l=fromList.options.length;n<l;n++)
{toList.options[(n+ind)]=new Option(fromList.options[n].text,fromList.options[n].value);if(fromList.options[(n+ind)].selected==true)toList.options[n].selected=true;}
return true;}
function setFormElementVal(htmlObj,valObj)
{if(htmlObj.tagName.toLowerCase()=='form'&&valObj!=null&&typeof(valObj)=='object')
{for(var i in valObj)
{var elObj=htmlObj.elements[i];if(elObj==null||typeof(elObj)=='undefined')continue;if(elObj.length&&elObj[0].type=='radio')
{setRadioValue(elObj,valObj[i]);continue;}
setFormElementVal(elObj,valObj[i]);}}
else if(htmlObj.tagName.toLowerCase()!=='form'&&htmlObj.form)
{elObj=htmlObj;if(elObj.type.toLowerCase()=='radio'&&elObj.length){elObj=elObj[0];}
switch(elObj.tagName.toLowerCase())
{case"input":switch(elObj.type.toLowerCase())
{case"text":case"hidden":case"password":elObj.value=valObj;break;case"checkbox":elObj.checked=(parseInt(valObj,10)>0)?true:false;break;case"radio":if(elObj.length)setRadioValue(elObj,valObj);else elObj.checked=true;break;}
break;case"textarea":elObj.value=valObj;break;case"select":switch(elObj.type.toLowerCase())
{case"select-one":setSelectIndex(elObj,valObj);break;case"select-multi":setMultiSelectIndex(elObj,valObj);break;}
break;}}}
function getParentByTagName(thisObj,tagname,level_up)
{if(level_up==null)level_up=1;var parentObj=thisObj.parentNode;if(parentObj.tagName==tagname)level_up--;while(parentObj.tagName!=tagname||level_up>0)
{if(parentObj.tagName=='BODY')break;if(level_up)parentObj=parentObj.parentNode;if(parentObj.tagName==tagname)level_up--;}
return(parentObj.tagName==tagname)?parentObj:null;}
function createHtmlElement(tagname,attrObj,styleObj)
{var element=null;var e_name='';if(attrObj!=null&&typeof(attrObj)=="object"&&attrObj.name!=null)
{e_name=attrObj.name;}
try
{if(e_name)element=document.createElement('<'+tagname+' name="'+e_name+'">');else element=document.createElement('<'+tagname+'>');}
catch(e){}
if(!element||element.nodeName!=tagname.toUpperCase())
{element=document.createElement(tagname);if(e_name)element.setAttribute("name",e_name);}
if(attrObj!=null&&typeof(attrObj)=='object')
{for(var i in attrObj){if(i!='name')element.setAttribute(i,attrObj[i]);}}
if(styleObj!=null&&typeof(styleObj)=='object')
{for(var j in styleObj){element.style[j]=styleObj[j];}}
return element;}
function getElementsByClass(searchClass,node,tag)
{var classElements=new Array();if(node==null)node=document;if(tag==null)tag='*';var els=node.getElementsByTagName(tag);var pattern=new RegExp("(^|\\s)"+searchClass+"(\\s|$)");for(var i=0,l=els.length;i<l;i++)
{if(pattern.test(els[i].className)){classElements.push(els[i]);}}
return classElements;}
function getWindowSize()
{var size=[0,0];if(typeof window.innerWidth!='undefined'){size=[window.innerWidth,window.innerHeight];}
else if(typeof document.documentElement!='undefined'&&typeof document.documentElement.clientWidth!='undefined'&&document.documentElement.clientWidth!=0){size=[document.documentElement.clientWidth,document.documentElement.clientHeight];}
else{size=[document.getElementsByTagName('body')[0].clientWidth,document.getElementsByTagName('body')[0].clientHeight];}
return size;}
function getPosition(theElement)
{var positionX=0;var positionY=0;while(theElement!=null)
{positionX+=theElement.offsetLeft;positionY+=theElement.offsetTop;theElement=theElement.offsetParent;}
return[positionX,positionY];}
function getScrollingPosition()
{var position=[0,0];if(typeof window.pageYOffset!='undefined'){position=[window.pageXOffset,window.pageYOffset];}
else if(typeof document.documentElement.scrollTop!='undefined'&&document.documentElement.scrollTop>0){position=[document.documentElement.scrollLeft,document.documentElement.scrollTop];}
else if(typeof document.body.scrollTop!='undefined'){position=[document.body.scrollLeft,document.body.scrollTop];}
return position;}
function detectScrolling(scroll_type)
{if(scroll_type==null)scroll_type="h";is_scroll=false;switch(scroll_type)
{case"h":i=1;break;case"w":i=0;break;default:i=1;break;}
var s_pos=getScrollingPosition();if(s_pos[i]>0)is_scroll=true;else
{switch(i)
{case 0:window.scroll(1,s_pos[1]);break;case 1:window.scroll(s_pos[0],1);break;}
var new_s_pos=getScrollingPosition();if(new_s_pos[i]>0)is_scroll=true;window.scroll(s_pos[0],s_pos[1]);}
return is_scroll;}
function displayCursorPosition(event)
{if(typeof event=="undefined"){event=window.event;}
var scrollingPosition=getScrollingPosition();var cursorPosition=[0,0];if(typeof event.pageX!="undefined"&&typeof event.x!="undefined")
{cursorPosition[0]=event.pageX+scrollingPosition[0];cursorPosition[1]=event.pageY+scrollingPosition[0];}
else
{cursorPosition[0]=event.clientX+scrollingPosition[0];cursorPosition[1]=event.clientY+scrollingPosition[1];}
return cursorPosition;}
function stopBubble(oEvent)
{if(oEvent&&oEvent.stopPropagation)oEvent.stopPropagation();else window.event.cancelBubble=true;}
function attachEventListener(target,eventType,functionRef,capture)
{if(typeof target.addEventListener!="undefined"){target.addEventListener(eventType,functionRef,capture);}
else if(typeof target.attachEvent!="undefined"){target.attachEvent("on"+eventType,functionRef);}
else
{eventType="on"+eventType;if(typeof target[eventType]=="function")
{var oldListener=target[eventType];target[eventType]=function(){oldListener();return functionRef();};}
else{target[eventType]=functionRef;}}}
function detachEventListener(target,eventType,functionRef,capture)
{if(typeof target.removeEventListener!="undefined"){target.removeEventListener(eventType,functionRef,capture);}
else if(typeof target.detachEvent!="undefined"){target.detachEvent("on"+eventType,functionRef);}
else{target["on"+eventType]=null;}}
function getEventTarget(event)
{var targetElement=null;if(typeof event.target!="undefined"){targetElement=event.target;}
else{targetElement=event.srcElement;}
while(targetElement.nodeType==3&&targetElement.parentNode!=null)
{targetElement=targetElement.parentNode;}
return targetElement;}
function insertAfter(parentObj,newnodeObj,refnodeObj)
{parentObj.insertBefore(newnodeObj,refnodeObj.nextSibling);}
function prependChild(parentObj,newnodeObj)
{parentObj.insertBefore(newnodeObj,parentObj.firstChild);}
Array.prototype.inArray=function(value){var i;for(i=0;i<this.length;i++){if(this[i]===value){return true;}}return false;};Array.prototype.vardelete=function(i){return this.splice(i,1);};Array.prototype.getindex=function(val){for(var i=0;i<this.length;i++){if(this[i]===val)return i;}return-1;}
Array.prototype.clear=function(){var len=this.length;if(len)this.splice(0,len);};Array.prototype.shuffle=function(b)
{var i=this.length,j,t;while(i)
{j=Math.floor((i--)*Math.random());t=b&&typeof this[i].shuffle!=='undefined'?this[i].shuffle():this[i];this[i]=this[j];this[j]=t;}
return this;};function arrayDiff(arr1,arr2)
{var str=','+arr1.toString()+',';var arr=new Array();for(var i=0,l=arr2.length;i<l;i++)
{var re=new RegExp((','+arr2[i]+','),"ig");str=str.replace(re,",,");}
var re2=/[,]+/g;str=str.replace(re2,",");str=str.substr(1,(str.length-2));return(str!="")?str.split(","):arr;}
function arrayIntersect(arr1,arr2)
{var str=','+arr1.toString()+',';var arr=new Array();for(var i=0,l=arr2.length;i<l;i++)
{var re=new RegExp((','+arr2[i]+','),"ig");if(re.test(str))arr.push(arr2[i]);}
return arr;}
String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,'');}
function replaceEscape(str)
{var re=/[&]/g;var re2=/[+]/g;var re3=/[\\]/g;var re4=/[=]/g;str=str.replace(re,"%26");str=str.replace(re2,"%2B");str=str.replace(re3,"%5C");str=str.replace(re4,"%3D");return str;}
var formTimeoutObj=null;function clearTag(nodeObj,tagName)
{if(tagName==null)tagName="";if(tagName==""){re=/<\/?[^>]+(>|$)/ig;}
else
{switch(tagName)
{case"b":case"strong":re=new RegExp('<\/?\s*(b|strong)\s*>',"ig");break;case"i":case"em":re=new RegExp('<\/?\s*(i|em)\s*>',"ig");break;default:re=new RegExp('<\/?'+(tagName+'[^>]*>'),"ig");break;}}
switch(typeof(nodeObj))
{case"string":return nodeObj.replace(re,"");break;case"object":var str=nodeObj.innerHTML;nodeObj.innerHTML=str.replace(re,"");break;}}
function delAllRows(tableobj)
{while(tableobj.rows.length)
{var trObj=tableobj.rows[(tableobj.rows.length-1)];var tr_td=false;for(var i=0,len=trObj.childNodes.length;i<len;i++)
{if(trObj.childNodes[i].nodeName=="TD")
{tr_td=true;break;}}
if(tr_td==true)tableobj.deleteRow((tableobj.rows.length-1));else break;}}
function getRowNumber(tableObj,row_id)
{var trObj=document.getElementById(row_id);if(trObj==null||typeof(trObj)=='undefined'||trObj.tagName!="TR")return 0;var parentObj=trObj.parentNode;while(parentObj.tagName!="TABLE")
{parentObj=parentObj.parentNode;}
if(parentObj!=tableObj)return 0;else return(trObj.rowIndex+1);return 0;}
function keyDown(ev)
{var ns4=(document.layers)?1:0;var ie4=(document.all)?1:0;var ns6=(document.getElementById&&!document.all)?1:0;if(ns4||ns6)var key=ev.which;if(ie4)var key=window.event.keyCode;if((key>=48&&key<=57)||(key>=96&&key<=105))keydown=key;else keydown=false;return key;}
function showError(err)
{if(err)alert(err);else alert("Неизвестная ошибка!");}
function trMove(tableObj,dstRowNum,srcRowNum,len)
{var tr_dst=tableObj.rows[dstRowNum];var tr_src=tableObj.rows[srcRowNum];var parentObj=tr_dst.parentNode;if(dstRowNum==srcRowNum)return false;tr_dst=tr_dst.nextSibling;if(tr_dst==tr_src)return false;if(dstRowNum<srcRowNum)
{while(len)
{var tr_src=tableObj.rows[srcRowNum];parentObj.insertBefore(tr_src,tr_dst);srcRowNum++;len--;}}
else
{while(len)
{var tr_src=tableObj.rows[srcRowNum];parentObj.insertBefore(tr_src,tr_dst);len--;}}}
function imgOpen(url,w,h,title)
{if(title==null)title='Изображение';var l=window.location.href;var re=/^(http:\/\/)?(www\.)?(([a-z0-9][0-9a-z\-]*\.){1,4}([a-z]{2,4}))(\/*.*)$/i;l=l.replace(re,"$1$2$3");var doc='<html><head><title>'+title+'</title></head><body><img src="'+l+'/'+url+'" alt="'+title+'" width="'+w+'" height="'+h+'"></body></html>';var w=window.open('','img','scrollbars=no,height='+(h+30)+',width='+(w+30)+',left=0,top=0,status=no,toolbar=no,menubar=no,location=no');with(w.document)
{open();write(doc);close();}}
