
﻿
Object.extend(Element,{getParentForm:function(element){element=$(element);while(element.tagName!="FORM"){element=element.parentNode;}
return element;},block:function(element){element=$(element);element.style.display="block";},visible:function(element){element=$(element);element.style.visibility="visible";},hidden:function(element){element=$(element);element.style.visibility="hidden";},niceRemove:function(element){element=$(element);var fader=new fx.FadeSize(element,{onComplete:function(){Element.remove(element);}});fader.toggle('height');},add:function(container,element,options){if(options&&options.onBottom==true){return container.appendChild(document.createElement(element));}
else{return container.insertBefore(document.createElement(element),container.childNodes[0]);}}});Object.extend(Form,{empty:function(form){var elements=Form.getElements(form);for(var i=1;el=elements[i];i++){if(el.tagName.toLowerCase()=="textarea"||el.type=="text"||el.type=="password")
el.value="";if(el.type=="checkbox"){el.checked=false;Element.removeClassName(el.parentNode,"oneChoiceSel");}}}});Object.extend(String.prototype,{urlyfy:function(){noChars=/\$|,|@|#|~|`|\*|\^|\(|\)|\[|\/|\]|\[|\}|\{|\;|\:|\'|\"|\<|\>|\?|\||\\|\!|\$/g;newVal=this.replace(noChars,"");s=newVal.replace(/\%/g,"-percent-");s=s.replace(/ /g,"-");s=s.replace(/\&/g,"-and-");s=s.replace(/\+/g,"-plus-");s=s.replace(/\=/g,"-equals-");s=s.toLowerCase();return s;}});var TagSearch=Class.create();TagSearch.prototype={setOptions:function(options){this.options={onComplete:''},Object.extend(this.options,options||{});},initialize:function(parameters,options)
{this.setOptions(options);this.parameters=parameters;this.keys=new Array(2);this.timer=null;},chkKey:function()
{this.keys.push(this.key);if(this.keys[1]!=this.keys[2])
{this.start();}
this.keys.pop();},start:function(key)
{if(key!=null)
this.key=key;this.tagCursorPosition=getCaretPos(this.element);var textAtPosition=this.key.charAt(this.tagCursorPosition-1);if(textAtPosition!=",")
{var first=getBeforeCommaPosition(this.key,this.tagCursorPosition);var last=getAfterCommaPosition(this.key,this.tagCursorPosition-1);var toSearch=this.key.substring(first+1,last);this.doTagSearch(toSearch);}},doTagSearch:function(text)
{msgDiv=$("statusElement");listDiv=$(this.auto_completeDivName);if(trim(text)!="")
{if(msgDiv)
msgDiv.innerHTML="Cimke keresése...";HVG.URLMaci.Web.TMTUserControlCustom.GetAllTags
(text,this.OnProcess.bind(this));}else{if(listDiv)
{listDiv.innerHTML="";listDiv.hide();}}},OnProcess:function(res)
{msgDiv=$("statusElement");listDiv=$(this.auto_completeDivName);if(res.error)
{if(msgDiv)
msgDiv.innerHTML=res.error.Message;}else{if(msgDiv)
msgDiv.innerHTML="";if(listDiv&&res.value.length>0)
{var html="<ul id='tags'>";for(i=0;i<res.value.length;i++)
{html+="<li class='tag'>"+res.value[i].Name+"</li>";}
html+="</ul>";listDiv.innerHTML=html;if(listDiv.firstChild&&listDiv.firstChild.childNodes)
{var entry_count=listDiv.firstChild.childNodes.length;for(var i=0;i<entry_count;i++)
{this.addObservers(listDiv.firstChild.childNodes[i]);}}
listDiv.toggle();}else
{listDiv.innerHTML="";listDiv.hide();}}},addObservers:function(element)
{Event.observe(element,"mouseover",this.onHover.bindAsEventListener(this));Event.observe(element,"mouseout",this.onOut.bindAsEventListener(this));Event.observe(element,"click",this.onClick.bindAsEventListener(this));},onHover:function(event)
{var elementObj=Event.findElement(event,'LI');elementObj.className="selected";Event.stop(event);},onOut:function(event)
{var elementObj=Event.findElement(event,'LI');elementObj.className="tag";Event.stop(event);},onClick:function(event)
{var elementObj=Event.findElement(event,'LI');tagInput=$(this.tagInputID);var first=getBeforeCommaPosition(tagInput.value,this.tagCursorPosition);var last=getAfterCommaPosition(tagInput.value,this.tagCursorPosition-1);var pre=tagInput.value.substring(0,first);var past=tagInput.value.substring(last);if(trim(pre)!="")
pre+=",";tagInput.value=pre+elementObj.innerHTML+past;tagInput.focus();if(document.selection)
{var oSel=document.selection.createRange();oSel.moveStart("character",tagInput.value.length);oSel.select();}
listDiv=$(this.auto_completeDivName);if(listDiv)
listDiv.hide();Event.stop(event);},setTimer:function(key,element)
{this.key=key;this.element=element;if(this.timer!=null)
{clearTimeout(this.timer);}
this.timer=setTimeout(this.chkKey.bind(this),500);}};function getBeforeCommaPosition(text,position)
{while(position-->0)
{if(text.charAt(position)==",")
{break;}}
return position;}
function getAfterCommaPosition(text,position)
{while(position++<text.length)
{if(text.charAt(position)==",")
{break;}}
return position;}
function insertAtCursor(field,value)
{if(document.selection)
{field.focus();sel=document.selection.createRange();sel.text=value;}
else if(field.selectionStart||field.selectionStart=="0")
{var startPos=field.selectionStart;var endPos=field.selectionEnd;field.value=field.value.substring(0,startPos)+value+field.value.substring(endPos,field.value.length);}
else
{field.value+=value;}}
function setCaretPos(el,pos)
{if(typeof el.selectionStart!="undefined")
el.selectionStart=pos;else if(document.selection)
{el.focus();var tr=el.createTextRange();tr.moveStart("character",pos);tr.collapse();tr.select();}}
function getCaretPos(el)
{if(typeof el.selectionStart!="undefined")
return el.selectionStart;else if(document.selection)
return Math.abs(document.selection.createRange().moveStart("character",-1000000));}
function trim(str)
{return str.replace(/^\s*|\s*$/g,"");}
