function check_child_partner() {
    f = document.forms["client"];
    obj_partner = document.getElementById('partner_form');
    obj_child = document.getElementById('child_form')
    
    if (f.elements["partner"][0].checked == false) {
        obj_partner.style.display = "none";
    }
    if (f.elements["child"][0].checked == false) {
        obj_child.style.display = "none";
    }
}
function hide_obj(name) {
    var agt=navigator.userAgent.toLowerCase();
    var is_ie5 = ((parseInt(navigator.appVersion) == 4) && (agt.indexOf("msie 5.0")!=-1) && (agt.indexOf("opera") == -1));

    if (document.getElementById && !is_ie5) {
        obj=document.getElementById(name).style.visibility = "hidden";
        document.getElementById(name).style.display = "none";
    } else if (document.layers) {
        obj=document.layers[name].visibility = "hide";
        document.layers[name].display = "none";
    } else if (document.all) {
        obj=document.all[name].style.visibility = "hidden";
        document.all[name].display = "none";
    } else {
        obj=false;
    }
}

function show_obj(name) {
    var agt=navigator.userAgent.toLowerCase();
    var is_ie5 = ((parseInt(navigator.appVersion) == 4) && (agt.indexOf("msie 5.0")!=-1) && (agt.indexOf("opera") == -1));
    if (document.getElementById && !is_ie5) {
        obj=document.getElementById(name).style.visibility = "visible";
        document.getElementById(name).style.display = "block";
    } else if (document.layers) {
        obj=document.layers[name].visibility = "show";
        document.layers[name].display = "block";
    } else if (document.all) {
        obj=document.all[name].style.visibility = "visible";
        document.all[name].display = "block";
    } else {
        obj=false;
    }
}

// counter - for js tag additions
var counter = 0;

//
// Disable 'delete tag' button if there is only one copy of tag to clone
//
function fn_check_last_tag(tag)
{
    if (!tag.previousSibling || tag.previousSibling.id == 'header' || typeof(tag.previousSibling.id) == 'undefined') {
        return true;
    }
    return false;
}

//
// Remove the tag
//
function fn_remove_tag(tag_id, nocheck)
{
    if(document.getElementById) {
        src = document.getElementById("box_"+tag_id);
        if(typeof(nocheck) == "undefined") {
            if (!fn_check_last_tag(src)) {
                src.parentNode.removeChild(src);
            }
        } else {
            src.parentNode.removeChild(src);
        }
    }
}


function fn_replace(substring, level)
{
    var re = new RegExp();
    var i = 0;
    re.compile("\\[\\d+\\]", "g");

    for (i=1; i<=level; i++) {
        re.exec(substring);
    }

    substring = RegExp.leftContext+'['+counter+']'+RegExp.rightContext;
    return substring;
}

//
// Adds the tag
//
// @tag_id - tag id that should be cloned
// @level - level in variable name that should be replaced
// @clone - if set, the field values will be copied
// E.g. (replace on '30')
// level = 1, varname = data[20][sub][50] - after replacement data[30][sub][50]
// level = 2, varname = data[20][sub][50] - after replacement data[20][sub][30]

function fn_add_tag(tag_id, level, clone) {
    //alert (tag_id);
    var j = 0;
    var i = 0;
    var re_names = new RegExp();
    var re_ids = new RegExp();

    if(document.getElementById) {
        counter++;
        new_id = tag_id+"_"+counter;

        src = document.getElementById("box_"+tag_id);
        var newNode = src.cloneNode(true);
        newNode.id = "box_"+new_id;

        re_names.compile("name=(\\\"|\\\')*\\w*(\\[\\w*\\])+(\\\"|\\\')*", "gi");
        var arr_names = newNode.innerHTML.match(re_names);

        node_elms = newNode.getElementsByTagName('*');

        for (i=0;i<node_elms.length;i++) {
            if (node_elms[i].id.length>0) {
                if (node_elms[i].name == 'remove' && node_elms[i].id == tag_id) {
                    node_elms[i].style.display = 'none';
                    node_elms[i+1].style.display = '';
                }
                if (node_elms[i].id != 'header') {
                    node_elms[i].id = node_elms[i].id + '_'+counter;
                }
            }

            if (node_elms[i].nodeName=='TD') {
                if (node_elms[i].style.display == 'none' && clone != 'Y') {
                    node_elms[i].style.display = '';
                }

                // Replace [%d] in nodes names
                for (j=0; j<arr_names.length; j++) {
                    if (node_elms[i].innerHTML.indexOf(arr_names[j])!=-1) {
                        str = fn_str_replace_string(node_elms[i].innerHTML,arr_names[j],fn_replace(arr_names[j],level));
                        if (str.length>0) {
                            node_elms[i].innerHTML = str;
                        }
                    }
                }
            }
        }

        // Insert node into the document
        newNode = src.parentNode.insertBefore(newNode,src.nextSibling);
        // Process INPUT types...
        child_inputs = newNode.getElementsByTagName('INPUT');
        parent_inputs = src.getElementsByTagName('INPUT');
        for (i=0;i<child_inputs.length;i++) {
            if (child_inputs[i].type!='file' && child_inputs[i].type!='hidden') { // Skip values assignment for file and hidden input types
                child_inputs[i].value = (clone == "Y")? parent_inputs[i].value : '';
            }
            if (child_inputs[i].type=='button' || child_inputs[i].type=='radio' || child_inputs[i].type=='checkbox') { // Skip values assignment for file input type.
                child_inputs[i].value = parent_inputs[i].value;
            }
            if (child_inputs[i].type == 'radio' || child_inputs[i].type == 'checkbox') { // Assignment checked state for checkboxes and radios.
                child_inputs[i].checked = (clone == "Y")? parent_inputs[i].checked : parent_inputs[i].defaultChecked;
            }
        }

        // Process TEXTAREA type...
        child_texts = newNode.getElementsByTagName('TEXTAREA');
        parent_texts = src.getElementsByTagName('TEXTAREA');
        for (i=0;i<child_texts.length;i++) {
            child_texts[i].value = (clone == "Y")? parent_texts[i].value : '';
        }

        // Process SELECT type...
        child_selects = newNode.getElementsByTagName('SELECT');
        parent_selects = src.getElementsByTagName('SELECT');
        for (i=0;i<child_selects.length;i++) {
            for (j=0;j<child_selects[i].options.length;j++) {
                child_selects[i].options[j].selected = (clone == "Y")? parent_selects[i].options[j].selected : parent_selects[i].options[j].defaultSelected;
            }
        }
    }
}

// ----------------------------- ogolne funkcje ----------------------------

// remove deleteString
function fn_str_delete_string(mainStr,deleteStr)
{
    return fn_str_replace_string(mainStr,deleteStr,"");
}

// replace searchString with replaceString
function fn_str_replace_string(mainStr,searchStr,replaceStr)
{
    var front = fn_str_get_front(mainStr,searchStr)
    var end = fn_str_get_end(mainStr,searchStr)

    if (front != null && end != null) {
        return front + replaceStr + end
    }

    return '';
}

function fn_get_window_sizes()
{
    var wnd_arr = new Array();

    if (is_nav) {
        wnd_arr['offset_x'] = self.pageXOffset;
        wnd_arr['offset_y'] = self.pageYOffset;
        wnd_arr['view_height'] = self.innerHeight;
        wnd_arr['view_width'] = self.innerWidth;
        wnd_arr['height'] = window.height;
        wnd_arr['width'] = window.width;
    }

    if (is_ie || is_firefox || is_opera8) {
        wnd_arr['offset_x'] = document.body.scrollLeft;
        wnd_arr['offset_y'] = document.body.scrollTop;
        wnd_arr['view_height'] = document.body.clientHeight;
        wnd_arr['view_width'] = document.body.clientWidth;
        wnd_arr['height'] = document.body.scrollHeight;
        wnd_arr['width'] = document.body.scrollWidth;
    }

    return wnd_arr;
}

// extract front part of string prior to searchString
function fn_str_get_front(mainStr,searchStr)
{
    foundOffset = mainStr.indexOf(searchStr)
    if (foundOffset == -1) {
        return null
    }

    return mainStr.substring(0,foundOffset)
}

// extract back end of string after searchString
function fn_str_get_end(mainStr,searchStr)
{
    foundOffset = mainStr.indexOf(searchStr)
    if (foundOffset == -1) {
        return null
    }

    return mainStr.substring(foundOffset+searchStr.length,mainStr.length)
}

function submitBtn(sender, opt) {
    if (opt == 1) sender.className = 'hg-submitt-h';
    else sender.className = 'hg-submitt';
}