var form_error = false;
var first_error_field = '';

function reset_errors() {
    form_error = false;
    first_error_field = '';
}

function validate_user_form(form) {
    reset_errors();
    required_field(form.first_name);
    required_field(form.last_name);
    required_field(form.email);
    required_field(form.password);
    matching_passwords(form.password.value, form.password2.value);
    return !form_error;
}

function validate_user_edit_form(form) {
    reset_errors();
    required_field(form.first_name);
    required_field(form.last_name);
    required_field(form.email);
    return !form_error;
}

function validate_contact_form(form) {
    reset_errors();
    dehtml(form.first_name);
    dehtml(form.last_name);
    required_field(form.first_name); 
    required_field(form.last_name);
    required_field(form.email);
    validate_email(form.email);
    return !form_error;
}

function validate_password_form(form) {
    reset_errors();
    required_field(form.password);
    matching_passwords(form.password.value, form.password2.value);
    return !form_error;
}

function validate_brand_form(form) {
    reset_errors();
    required_field(form.name);
    return !form_error;
}

function validate_editfile_form(form) {
    reset_errors();
    required_field(form.name);
    return !form_error;
}

function required_field(objElement) {
    if (objElement.value.trim(true) == '' || objElement.value == undefined) {
        alerf(objElement.name + '_note','<em>' + objElement.name.replace('_',' ') + '</em> is required.','error');
        form_error = true;
        if (!first_error_field) first_error_field = name;
    } else {
        alerf(objElement.name + '_note','','ok');
    }
}

function matching_passwords(pw1, pw2) {
    if (pw1 != pw2) {
        alerf('password2_note','Confirmation password does not match. Please confirm','error');
        form_error = true;
    } else {
        alerf('password2_note', '', 'ok');
    }
}

function validate_email(objEmail) {
    if (objEmail.value == '' || objEmail.value == undefined) return false;
    var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; 
    var is_valid = emailPattern.test(objEmail.value);
    if (!is_valid) {
        alerf(objEmail.name + '_note','Please enter a valid email address','error');
        form_error = true;
    } else {
        alerf(objEmail.name + '_note', '', 'ok');
    }
}

function alerf(element, text, class_name) {
    var theElement = document.getElementById(element.replace('[]',''));
    theElement.innerHTML = '<span class="' + class_name + '">' + text + '</span>';
}

function dehtml(objElement) {
    var nv = objElement.value.replace(/\</,"").replace(/\>/,"");
    document.getElementById(objElement.id).value = nv;
}

String.prototype.trim = function() {
  return this.replace(/^\s\s*/, "").replace(/\s\s*$/, "");
};

function change_file_upload(fe, ne) {
    var nn;
    nn = '' + fe.value.replace(/\\/g, '/'); // To unix style
    nn = nn.substring(nn.lastIndexOf('/') + 1);
    nn = nn.substring(0, nn.lastIndexOf('.'));
    ne.value = nn;
}

//Brand Editor
function update_bg_color(el) {
    if (el.value != '' && el.value != undefined) {
        document.body.style.backgroundColor = "#" + el.value;
    }
}
function update_wrapper_bg_color(el) {
    if (el.value != '' && el.value != undefined) {
        document.getElementById('content_wrapper').style.backgroundColor = "#" + el.value;
    }
}
function populate_copyright(el) {
    var foot = document.getElementById('footer_text');
    if (el.value != '' && el.value != undefined) {
        if (foot.value == '') {
            foot.value = 'copyright &copy; ' + el.value;
        }
    }
}

function populate_groups() {
}

function populate_groups_by_organization() {
    orgs = document.getElementById('organization');
    grps = document.getElementById('groups');

    var o;
    var g=0;
    grps.options.length = 0;
    for(o=0;o<orgs.length;o++) {
        if (orgs[o].selected) {
            for(var i=0;i<groups.length;i++) {
                if (groups[i][0] == orgs[o].value) {
                    grps.options[g] = new Option(groups[i][2], groups[i][1]);
                    g++;
                }
            }
        }
    }
}

function browse_check_all(master_check, form_id) {
    objFormTable = document.getElementById(form_id);

    if (!objFormTable) return false;

    for (i=0; i<objFormTable.elements.length; i++) {
        var te = objFormTable.elements[i];
        if (te.type == "checkbox") {
            te.checked = master_check.checked;
        }
    }
}

function do_delete_items(form_id) {
    objFormTable = document.getElementById(form_id);

    if (!objFormTable) return false;

    var chk_cnt = 0;
    for (i=0; i<objFormTable.elements.length; i++) {
        var te = objFormTable.elements[i];
        if (te.type == "checkbox" && te.checked) {
            chk_cnt++;
        }
    }

    if (chk_cnt > 0) {
        var return_val = confirm("Really delete " + chk_cnt + " item(s)?");
        if (return_val) {
            objFormTable.action = 'files.php?action=process_delete_files';
            objFormTable.submit();
        } else {
            return false;
        }
    } else {
        alert ("No items selected.");
        return false;
    }
}

function getStyleClass (className) {
	for (var s = 0; s < document.styleSheets.length; s++)
	{
		if(document.styleSheets[s].rules)
		{
			for (var r = 0; r < document.styleSheets[s].rules.length; r++)
			{
				if (document.styleSheets[s].rules[r].selectorText == '.' + className)
				{
					return document.styleSheets[s].rules[r];
				}
			}
		}
		else if(document.styleSheets[s].cssRules)
		{
			for (var r = 0; r < document.styleSheets[s].cssRules.length; r++)
			{
				if (document.styleSheets[s].cssRules[r].selectorText == '.' + className)
					return document.styleSheets[s].cssRules[r];
			}
		}
	}
	
	return null;
}


function changecss(theClass,element,value) {
//documentation for this script at http://www.shawnolson.net/a/503/
 var cssRules;
 if (document.all) {
  cssRules = 'rules';
 }
 else if (document.getElementById) {
  cssRules = 'cssRules';
 }
 for (var S = 0; S < document.styleSheets.length; S++){
  for (var R = 0; R < document.styleSheets[S][cssRules].length; R++) {
   if (document.styleSheets[S][cssRules][R].selectorText == theClass) {
    document.styleSheets[S][cssRules][R].style[element] = value;
   }
  }
 }	
}
