function YesNo() {
  if (confirm("Are you sure you want to delete this item?")) {
    return true;
  }    
  return false;
}
// Set the value of form's ACTION field.
function setAction(elem,act) {
    var form = elem.form;
    if (act == "delete_item") {
        if (!YesNo()) {
            return false;
        }
    }
    form.action.value = act;
    return true;
}
// Before seting the action, validates existance of pageId
function SetActionWV(elem,act) {
    var form = elem.form;
    if (form.mainId.value != ""){
        if (act == "delete") {
            if (!YesNo()) {
                return false;
            }
        }
        form.action.value = act;
        return true;
    } else {
        alert("You have to select an existing page");
        return false;
    }
}

// set value into some field and submit form
function setAndSubmit(elem,item,val) {
    var form = document.getElementById(elem);
    eval("form."+item+".value = val");
    form.submit();
    return false;
}

// does mainId field have value
function isIdSetted(elem) {
    var form = elem.form;
    if (form.mainId.value != "")
        return true;
    return false;
}
// sets directly Section field value
function SetSectionValue(elem,val) {
    var form = elem.form;
    if (val != "") {
        form.subsection.value = val;
        return true;
    }
    return false;
}
// raises image browse window
function popUnder(elem,pritisnuto,lang) {   
    var form = elem.form;
    var page = form.webroot.value;
    var t_lang = lang;
    //if (t_lang == "") 
    //    t_lang = "ZZ";
    form.pritisnuto.value = pritisnuto;
    var windowprops = "resizable=no,width=400,height=400,status=no,location=no,toolbar=no,scrollbars=yes";
    var popwin = window.open(page+"?lid="+t_lang,"images", windowprops);
    popwin.focus();
    return true;
}
// saves the selected image name into the opener's form field
function close_win(elem,t){
    var form = elem.form;  
    if (self.opener.document.formelem.pritisnuto.value == 2){
        self.opener.document.formelem.imageSrc.value = t; // browse image src
    } else if (self.opener.document.formelem.pritisnuto.value == 3){
        self.opener.document.formelem.imageSrc2.value = t; // browse image src 2
    } else if (self.opener.document.formelem.pritisnuto.value == 4){
        self.opener.document.formelem.imageSrc3.value = t; // browse image src 3
    } else if (self.opener.document.formelem.pritisnuto.value == 5){
        self.opener.document.formelem.imageSrc4.value = t; // browse image src 4
    }else{
        self.opener.document.formelem.divBg.value = t;   // browse background image
    }
    close();
    return true;
}
// sets directly value into elemId field
function SetElemId(elem,val) {
    var form = elem.form;
    form.elemId.value = val;
    return true;
}
// sets directly value into field with name item
function SetItemValue(elem,item,val) {
    var form = elem.form;
    eval("form."+item+".value = val");
    return true;
}
// Shows access violation message
function CheckAccess(right) {
    if (right == "yes") {
        return true;
    } else {
        alert("You don't have access rights for this option.");
        return false;
    }
}
function CheckDate(elem) {
    if (elem.value == "")
        return;
    var isOK = true;
    var elems = elem.value.split(".");
    if (elems.length == 3) {
        var d=parseInt(elems[0], 10);
        var m=parseInt(elems[1], 10);
        var y=parseInt(elems[2], 10);
        if (isNaN(d) || isNaN(m) || isNaN(y)) {
            isOK = false;
        } else {
            if (d<1 || d>31)
                isOK = false;
            if (m<1 || m>12)
                isOK = false;
            if (y<1990 || y>2090)
                isOK = false;
        }
    } else {
        isOK = false;
    }
    if (isOK == false) {
        alert("The value " + elem.value + " is not a valid date in format: dd.mm.yyyy");
        elem.focus();
    }
}

// Field validation
function validateField(fld, mode) {
    // Validate val, if validation fails show alert and return false else return true
    // Mode:
    // 1 - Only letters
    // 2 - Letters and _
    // 3 - Letters and numbers and _
    // 4 - Integer value
    // 5 - Number
    // 6 - Mobile phone like +number
    var val = fld.value;
    var msg = "";
    var result = true;
    switch (mode) {
    case 1:
        pat = /\w/gi
        pat2 = /[0-9_]/gi
        msg = "The field value contains invalid characters, the valid characters are letters, only";
        break;
    case 2:
        pat = /\w/gi
        pat2 = /[0-9]/gi
        msg = "The field value contains invalid characters, the valid characters are letters and _";
        break;
    case 3:
        pat = /\w/gi
        pat2 = /\W/gi
        msg = "The field value contains invalid characters, the valid characters are letters, numbers and _";
        break;
    case 4:
        pat = /[0-9]/gi
        pat2 = /[^0-9]/gi
        msg = "Invalid integer value";
        break;
    }
    if (mode == 1 || mode == 2 || mode == 3 || mode == 4) {
        res = val.replace(pat,"");
        if (res != "") {               
            result = false;
        } else {
            if (pat2.test(val))
                result = false;
        }
    } else if (mode == 5) {
        floatValue=parseFloat(val);
        if (val != "" && isNaN(floatValue)) {
            msg = "Invalid decimal number";
            result = false;
        }
    } else if (mode == 6) {
        if (val.length > 0) {
            if (val.charAt(0) == "+" && val.length > 1) {
                val = val.slice(1);
                pat = /[0-9]/gi
                pat2 = /[^0-9]/gi
                res = val.replace(pat,"");
                if (res != "") {               
                    result = false;
                } else {
                    if (pat2.test(val))
                        result = false;
                }
            } else {                
                result = false;
            }
            if (!result)
                msg = "Invalid mobile phone number format";
        }
    }
    if (!result) {
        alert(msg);
        fld.focus();
    }
    return result;   
}

function validateMax(fldmin, fldmax) {
	if (fldmax.value >= fldmin.value) {
		return true;
	} else {
        alert("Invalid number "+fldmax.value+"!");
        fldmax.focus();
		return false;
	}
}

function resetReferenceList() {
	document.reference.ref_name.value = "";
	document.reference.ref_city.value = "";
	document.reference.ref_pro_year.value = "";
	document.reference.rowspp.value = "20";
	document.reference.ref_type.options[0].selected = true;
	document.reference.ref_activity.options[0].selected = true;
	document.reference.ref_pro_type.options[0].selected = true;
	document.reference.sort.options[0].selected = true;
	document.reference.sort_type.options[0].selected = true;
	return false;
}

