function getElementsByClassName(strClass, strTag, objContElm) {
  strTag = strTag || "*";
  objContElm = objContElm || document;
  var objColl = objContElm.getElementsByTagName(strTag);
  if (!objColl.length &&  strTag == "*" &&  objContElm.all) objColl = objContElm.all;
  var arr = new Array();
  var delim = strClass.indexOf('|') != -1  ? '|' : ' ';
  var arrClass = strClass.split(delim);
  for (var i = 0, j = objColl.length; i < j; i++) {
    var arrObjClass = objColl[i].className.split(' ');
    if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
    var c = 0;
    comparisonLoop:
    for (var k = 0, l = arrObjClass.length; k < l; k++) {
      for (var m = 0, n = arrClass.length; m < n; m++) {
        if (arrClass[m] == arrObjClass[k]) c++;
        if (( delim == '|' && c == 1) || (delim == ' ' && c == arrClass.length)) {
          arr.push(objColl[i]);
          break comparisonLoop;
        }
      }
    }
  }
  return arr;
}

function dxOnclick(func, options) {
	var break_click = false;
	
	if(options.elem) {
		var elem = options.elem;
		elem.onclick = function() {
			if(options.confirm) {
				var confirm_action = confirm(options.confirm_text);
				if(confirm_action == false) {
					break_click=true;
				}
			}
		
			if(!break_click) {
				if(options.class_name) {
					eval("var newClass = new "+options.class_name+";");
					if(options.param) {
						eval("newClass."+func+"('"+options.param+"');");
					} else if(options.elem_param) {
						eval("newClass."+func+"(options.elem_param);");	
					} else {
						eval("newClass."+func+"(elem);");
					}	
				} else {
					if(options.param) {
						eval(func+"('"+options.param+"');");	
					} else if(options.elem_param) {
						eval(func+"(options.elem_param);");	
					} else {
						eval(func+"();");	
					}
				}
				
				if(options.ShowLoadingLayer == true) {
					loadingLayer.ShowLoadingLayer();
				}
			}
			break_click=false;
		}
	}
}

function dxOnKeyUp(func, options) {
	var break_click = false;
	var key;
	
	if(options.elem) {
		var elem = options.elem;
		elem.onkeyup = function(event) {
			if(options.confirm) {
				var confirm_action = confirm(options.confirm_text);
				if(confirm_action == false) {
					break_click=true;
				}
			}
			
			if(!event) {
				event = window.event;
			}
			
			if(event.which) {
			    key = event.which;
			} else if(event.keyCode) {
			    key = event.keyCode;
			}
						
			if(!break_click) {
				if(options.class_name) {
					eval("var newClass = new "+options.class_name+";");
					if(options.param) {
						eval("newClass."+func+"('"+options.param+"');");
					} else if(options.elem_param) {
						eval("newClass."+func+"(options.elem_param);");	
					} else {
						eval("newClass."+func+"(elem, key);");
					}	
				} else {
					if(options.param) {
						eval(func+"('"+options.param+"');");	
					} else if(options.elem_param) {
						eval(func+"(options.elem_param);");	
					} else {
						eval(func+"();");	
					}
				}
				
				if(options.ShowLoadingLayer == true) {
					loadingLayer.ShowLoadingLayer();
				}
			}
			break_click=false;
		}
	}
}

function dxOnmouseover(func, options) {
	if(options.elem) {
		var elem = options.elem;
		elem.onmouseover = function() {
			if(options.class_name) {
				eval("var newClass = new "+options.class_name+";");
				if(options.param) {
					eval("newClass."+func+"('"+options.param+"');");
				} else if(options.elem_param) {
					eval("newClass."+func+"(options.elem_param);");	
				} else {
					eval("newClass."+func+"();");
				}	
			} else {
				if(options.param) {
					eval(func+"('"+options.param+"');");	
				} else if(options.elem_param) {
					eval(func+"(options.elem_param);");	
				} else {
					eval(func+"();");	
				}
			}
		}
	}
}

function dxOnmouseout(func, options) {
	if(options.elem) {
		var elem = options.elem;
		elem.onmouseout = function() {
			if(options.class_name) {
				eval("var newClass = new "+options.class_name+";");
				if(options.param) {
					eval("newClass."+func+"('"+options.param+"');");
				} else if(options.elem_param) {
					eval("newClass."+func+"(options.elem_param);");	
				} else {
					eval("newClass."+func+"();");
				}	
			} else {
				if(options.param) {
					eval(func+"('"+options.param+"');");	
				} else if(options.elem_param) {
					eval(func+"(options.elem_param);");	
				} else {
					eval(func+"();");	
				}
			}
		}
	}
}


 /* mails */
function reloadMailsSite() {
	var blocks = document.getElementById('MailBoxLayer');

	if(blocks) {
		var block = blocks.getElementsByTagName('div');

		if(block.length == 0) {
			window.location.reload();
		}
	}
}
