function switchLanguage(lang) {
    // menu fold
    u = "";
    if (document.forms['menu'].unfold.value != -1) {
        u = "unfold="+document.forms['menu'].unfold.value;
    }
    // news fold
    n = "";
    if (!news_expand) {
        n = "foldnews";
    }

    loc = page.location.href;
    if (loc.indexOf("page.php?action=show&id=") > 0) {
        tmp = loc.split(/id=/);
        location.href = "index.php?embed=" + escape("page.php?action=show&id="+tmp[1]) + "&language="+lang+"&"+u+"&"+n;
        return;
    } else if (loc.indexOf("news.php?action=show&id=") > 0) {
        tmp = loc.split(/id=/);
        location.href = "index.php?embed=" + escape("news.php?action=show&id="+tmp[1]) + "&language="+lang+"&"+u+"&"+n;
        return;
    } else if (loc.indexOf("news.php?action=index") > 0) {
        location.href = "index.php?embed=" + escape("news.php?action=index") + "&language="+lang+"&"+u+"&"+n;
        return;
    }
    location.href = "index.php?language="+lang+"&"+u+"&"+n;
}


function CheckRequiredFields(frm, msg){
    var allOK = true;
    for(i=0;i<frm.elements.length;i++){
        var elem = frm.elements[i];
        var req = elem.getAttribute("required");
        var reqif = elem.getAttribute("requiredif");
        if(req == 'true'){
            if(elem.getAttribute("type") == 'radio'){
                value = getCheckedValue(frm.elements[elem.name]);
			}else if(elem.getAttribute("type") == 'checkbox'){
				if(elem.checked == true){
					value = true;
				}else{
					value = false;
				}
            }else{
                value = elem.value;
            }
            if(trim(value) == '' || value == null){
                if(frm.elements[i].className.indexOf("required") == -1){
                    frm.elements[i].className += ' required';
                }
                allOK = false;
            }else{
                if(elem.className.indexOf("required") != -1){
                    elem.className = trim(elem.className.replace(/required/, ''));
                }
            }
        }
        else if(reqif){
            var arr = reqif.split('=');
            var el = frm.elements[arr[0]];
            var v1 = arr[1];
            
            if(el[0] && el[0].type == 'radio'){
                v2 = getCheckedValue(el);
            }else{
                v2 = el.value;
            }
            
            if(v1 == v2){
               if(elem.value == "") {
                    if(elem.className.indexOf("required") == -1){
                        elem.className += ' required';
                    }
                    allOK = false;
               }
               else {
                   elem.className = trim(elem.className.replace(/required/, ''));
               }   
            }else{
                if(elem.className.indexOf("required") != -1){
                    elem.className = trim(elem.className.replace(/required/, ''));
                }
            }
        }
        if(elem.getAttribute("isdate") == 'true'){
            if(isDate(trim(elem.value))){
                if(elem.className.indexOf("required") != -1){
                    elem.className = trim(elem.className.replace(/required/, ''));
                }
            }else{
                if(elem.className.indexOf("required") == -1){
                    elem.className += ' required';
                }
                allOK = false;
            }
        }
    }
    if(allOK){
        return true;
    }else{
        alert(msg);
        return false;
    }
}
function isDate(sDate) {
	var re = /^\d{1,2}\-\d{1,2}\-(?:\d{2}|\d{4})$/
	if (re.test(sDate)) {
		var dArr = sDate.split("-");
		if(dArr[2].length == 2) {
			dArr[2] = "20" + dArr[2];
		}
		var d = new Date();
		d.setFullYear(parseInt(dArr[2]), parseInt(dArr[1]) - 1, parseInt(dArr[0]));
		return d.getDate() == dArr[0] && d.getMonth() + 1 == dArr[1] && d.getFullYear() == dArr[2];
		}
	else {
		return false;
	}
}
function toDate(sDate) {
   var re = /^\d{1,2}\-\d{1,2}\-\d{4}$/
   if (re.test(sDate)) {
      var dArr = sDate.split("-");
      if(dArr[2].length == 2) {
          dArr[2] = "20" + dArr[2];
      }
      var d = new Date();
      d.setFullYear(parseInt(dArr[2]), parseInt(dArr[1]) - 1, parseInt(dArr[0]));
      return d;
   }
   else {
      return false;
   }
}

function trim(str)
{
    if(!str || typeof str != 'string')
        return str;

    return str.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' ');
}
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}
function getElementsByClassName(oElm, strTagName, oClassNames){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var arrRegExpClassNames = new Array();
	if(typeof oClassNames == "object"){
		for(var i=0; i<oClassNames.length; i++){
			arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
		}
	}
	else{
		arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
	}
	var oElement;
	var bMatchesAll;
	for(var j=0; j<arrElements.length; j++){
		oElement = arrElements[j];
		bMatchesAll = true;
		for(var k=0; k<arrRegExpClassNames.length; k++){
			if(!arrRegExpClassNames[k].test(oElement.className)){
				bMatchesAll = false;
				break;
			}
		}
		if(bMatchesAll){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}
