function $e(name){return document.getElementById(name);}
if(typeof DOMParser=="undefined"){DOMParser=function(){}
DOMParser.prototype.parseFromString=function(str,contentType){if(typeof(ActiveXObject)!='undefined'){var xmldata=new ActiveXObject('MSXML2.DomDocument');xmldata.async=false;xmldata.loadXML(str);return xmldata;}else if(typeof(XMLHttpRequest)!='undefined'){var xmldata=new XMLHttpRequest;if(!contentType){contentType='application/xml';}
xmldata.open('GET','data:'+contentType+';charset=utf-8,'+encodeURIComponent(str),false);if(xmldata.overrideMimeType){xmldata.overrideMimeType(contentType);}
xmldata.send(null);return xmldata.responseXML;}}}
var formValidator={__form_object:new Object,__forms_data:new Array(),__loading_message:'<span class="loading">loading....</span>',__message_timeout:2000,__message_fadeopacity:90,__message_hideform:0,__redirect:1,lang_code:'bg',htmlspecialchars:function(encodedHtml){encodedHtml=escape(encodedHtml);encodedHtml=encodedHtml.replace(/\//g,"%2F");encodedHtml=encodedHtml.replace(/\?/g,"%3F");encodedHtml=encodedHtml.replace(/=/g,"%3D");encodedHtml=encodedHtml.replace(/&/g,"%26");encodedHtml=encodedHtml.replace(/@/g,"%40");return encodedHtml},getElementsByTagNames:function(list,obj){if(!obj)var obj=document;var tagNames=list.split(',');var resultArray=new Array();for(var i=0;i<tagNames.length;i++)
{var tags=obj.getElementsByTagName(tagNames[i]);for(var j=0;j<tags.length;j++)
{resultArray.push(tags[j]);}}
var testNode=resultArray[0];if(testNode.sourceIndex)
{resultArray.sort(function(a,b){return a.sourceIndex-b.sourceIndex;});}
else if(testNode.compareDocumentPosition)
{resultArray.sort(function(a,b){return 3-(a.compareDocumentPosition(b)&6);});}
return resultArray;},array_keys:function(input,search_value,strict){var tmp_arr=new Array(),strict=!!strict,include=true,cnt=0;for(key in input){include=true;if(search_value!=undefined){if(strict&&input[key]!==search_value){include=false;}else if(input[key]!=search_value){include=false;}}
if(include){tmp_arr[cnt]=key;cnt++;}}
return tmp_arr;},inArray:function(needle,haystack,strict){var found=false,key,strict=!!strict;for(key in haystack){if((strict&&haystack[key]===needle)||(!strict&&haystack[key]==needle)){found=true;break;}}
return found;},eventMessageFade:function(message_id,opac,dont_remove){var passed=parseInt(opac);var newOpac=parseInt(passed+10);if(newOpac<formValidator.__message_fadeopacity){$e(message_id).style.opacity='.'+newOpac;$e(message_id).style.filter="alpha(opacity:"+newOpac+")";opacityID=window.setTimeout("formValidator.eventMessageFade('"+message_id+"', '"+newOpac+"')",20);}
else{if($e(message_id)!=undefined){if(!parseInt(formValidator.__message_hideform)){removeID=window.setTimeout("formValidator.eventMessageRemove('"+message_id+"', "+formValidator.__message_fadeopacity+")",formValidator.__message_timeout);}else{$e(message_id).nextSibling.style.visibility='hidden';}}}},eventMessageRemove:function(message_id,opac){var passed=parseInt(opac);var newOpac=parseInt(passed-10);if(newOpac>0){$e(message_id).style.opacity='.'+newOpac;$e(message_id).style.filter="alpha(opacity:"+newOpac+")";opacityID=window.setTimeout("formValidator.eventMessageRemove('"+message_id+"', '"+newOpac+"')",20);}
else{$e(message_id).parentNode.removeChild($e(message_id));formValidator.__redirect=1;}},execScript:function(script){if(script){var execute=function(){eval(script);}
execute.onerror=alert;execute();}},redirectURL:function(url){if(!formValidator.__redirect){setTimeout("formValidator.redirectURL('"+url+"')",10);return false;}
if(url){location.href=url;}},showEventMessage:function(form_obj,formMessage,dont_remove){if(form_obj!=undefined&&formMessage.length){var message_id="eventmsg_"+form_obj.getAttribute('name');if($e(message_id)==undefined){var msgBackgr=document.createElement('div');msgBackgr.className="overlayBackground";var msgObject=document.createElement('div');msgObject.innerHTML=formMessage;msgObject.className='eventFormRequired';msgObject.style.backgroundColor='#ffffff';msgObject.style.zIndex=999;msgBackgr.setAttribute("id",message_id);msgBackgr.appendChild(msgObject);form_obj.parentNode.insertBefore(msgBackgr,form_obj);formValidator.eventMessageFade(message_id,10,dont_remove);}}},getElementDomObj:function(obj,element_id,field){if(obj[element_id]!=undefined){if(obj[element_id].getElementsByTagName(field)[0].childNodes.length){return obj[element_id].getElementsByTagName(field)[0].firstChild.nodeValue;}}},validateFields:function(form_obj,xmlDoc){formname=form_obj.getAttribute('name');var globalError=0;var interator=(new DOMParser()).parseFromString(xmlDoc,"text/xml");var metadata=interator.getElementsByTagName('metadata');if(this.getElementDomObj(metadata,0,'globalmessage'))var globalMessage=this.getElementDomObj(metadata,0,'globalmessage');else var globalMessage="";if(this.getElementDomObj(metadata,0,'result'))var globalResult=parseInt(this.getElementDomObj(metadata,0,'result'));else var globalResult="";if(this.getElementDomObj(metadata,0,'javascriptfunc'))var globalScript=this.getElementDomObj(metadata,0,'javascriptfunc');else var globalScript="";if(this.getElementDomObj(metadata,0,'redirecturl'))var globalRedirect=this.getElementDomObj(metadata,0,'redirecturl');else var globalRedirect="";if(this.getElementDomObj(metadata,0,'exectimeout'))var globalTimeout=this.getElementDomObj(metadata,0,'exectimeout');else var globalTimeout="";if(this.getElementDomObj(metadata,0,'fadeopacity'))var globalFadeOpacity=this.getElementDomObj(metadata,0,'fadeopacity');else var globalFadeOpacity="";if(this.getElementDomObj(metadata,0,'hideform'))var globalHideForm=this.getElementDomObj(metadata,0,'hideform');else var globalHideForm="";if(globalTimeout.length)formValidator.__message_timeout=globalTimeout*1000;if(globalFadeOpacity.length)formValidator.__message_fadeopacity=globalFadeOpacity
if(globalHideForm.length)formValidator.__message_hideform=globalHideForm
var elements=new Array();var fields_root=interator.getElementsByTagName('field');if(!fields_root.length){globalError++;}
for(i=0;i<fields_root.length;i++){var field_name=fields_root[i].getElementsByTagName("name")[0].firstChild.nodeValue;if(this.getElementDomObj(fields_root,i,'msg'))var field_msg=this.getElementDomObj(fields_root,i,'msg');else var field_msg='';if(this.getElementDomObj(fields_root,i,'value'))var field_value=this.getElementDomObj(fields_root,i,'value');else var field_value='';elements[field_name]=new Array();elements[field_name][0]=field_msg;elements[field_name][1]=field_value;}
if(globalError){formValidator.__message_hideform=1;formValidator.showEventMessage(form_obj,(xmlDoc));return false;}
var elementsNames=formValidator.array_keys(elements);var inputs=formValidator.getElementsByTagNames('input,select,textarea',form_obj);var error=0;for(i=0;i<inputs.length;i++){var input_name=inputs[i].getAttribute('name');if(formValidator.inArray(input_name,elementsNames)){inputs[i].value=elements[input_name][1];var requiredMsg_id="req_"+input_name+"_"+formname+"_"+i
if(elements[input_name][0].length){inputs[i].style.backgroundColor="#FFECEC";if($e(requiredMsg_id)==undefined){var requiredMsg=document.createElement('div');requiredMsg.innerHTML=elements[input_name][0];requiredMsg.setAttribute("id",requiredMsg_id);requiredMsg.className="requiredMsg";inputs[i].parentNode.insertBefore(requiredMsg,inputs[i].nextSibling);}else{$e(requiredMsg_id).innerHTML=elements[input_name][0];}
error++;}else{inputs[i].style.backgroundColor="";if($e(requiredMsg_id)!=undefined){inputs[i].parentNode.removeChild($e(requiredMsg_id));}}}
if(inputs[i].getAttribute('type')=='submit')inputs[i].disabled=false;}
if(globalResult){if(globalMessage.length){formValidator.showEventMessage(form_obj,globalMessage);}
if(globalScript.length){formValidator.execScript(globalScript);}}else{if(globalMessage.length){formValidator.__redirect=0;formValidator.showEventMessage(form_obj,globalMessage);}
if(globalScript.length){formValidator.execScript(globalScript);}
if(globalRedirect.length){formValidator.redirectURL(globalRedirect);globalResult=1;}}
if(globalResult||error){return false;}else{formValidator.showEventMessage(form_obj,new Array(formValidator.__loading_message));form_obj.submit();}},createAjaxObject:function(){var http_request=false;try{http_request=new XMLHttpRequest;if(http_request.overrideMimeType)
{http_request.overrideMimeType('text/xml');}}
catch(e){var msxml=['MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP'];for(var i=0,len=msxml.length;i<len;++i){try{http_request=new ActiveXObject(msxml[i]);break;}
catch(e){}}}
if(!http_request){return false;}
return http_request;},validateForm:function(form){form.onsubmit=function(){var parameters=formValidator.getFormParams(this);var lcode=formValidator.lang_code;var http_request=formValidator.createAjaxObject();formValidator.__form_object=this;http_request.onreadystatechange=function(){if(http_request.readyState==4){if(http_request.status==200){result=http_request.responseText;$e('debug').innerHTML=result;formValidator.validateFields(formValidator.__form_object,result);}else{}}}
http_request.open('POST',"/rpc/index.php",true);http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8");http_request.setRequestHeader("Content-Length",parameters.length);http_request.setRequestHeader("Content-Language",lcode+";q=0.5");http_request.setRequestHeader("Connection","close");http_request.setRequestHeader("X-Requested-With","XMLHttpRequest");http_request.setRequestHeader("CacheControl","no-cache");http_request.setRequestHeader("Pragma","no-cache");http_request.setRequestHeader("Expires",-1);http_request.send(parameters);return false;}},validateForms:function(){formValidator.__form_object=new Object();var html_forms=document.getElementsByTagName('form');for(f=0;f<html_forms.length;f++){var class_name=html_forms[f].className;if(class_name!=undefined){if(class_name.indexOf("req")!=-1){formValidator.validateForm(html_forms[f]);}}}},setFormFieldName:function(form_name,field,value){if(formValidator.__forms_data[form_name]==undefined){formValidator.__forms_data[form_name]=new Array();}
formValidator.__forms_data[form_name][field]=value;},getFormParams:function(obj){var formname=obj.getAttribute('name');var inputs=formValidator.getElementsByTagNames('input,select,textarea',obj);var params=new Array();var params_strings=new Array();for(i=0;i<inputs.length;i++){if(inputs[i].getAttribute('type')=='checkbox'){if(!inputs[i].checked)
{continue;}}
if(inputs[i].getAttribute('type')=='radio'){if(!inputs[i].checked)continue;}
param_key=inputs[i].getAttribute('name')
if(inputs[i].nodeName.toLowerCase()=='select'){field_value=inputs[i].options[inputs[i].selectedIndex].value;param_val=field_value;}else{param_val=inputs[i].value;}
param_val=param_val.replace(/\+/gi,'%2B');params[param_key]=param_val;params_strings[i]=param_key+"="+param_val;if(inputs[i].getAttribute('type')=='submit')inputs[i].disabled=true;}
return params_strings.join("&")+"&__formname__="+formname+"&__url__="+escape(location.href);}}