var regex_output="";

function regex_init() {
    var form=document.getElementById('regex');
	if(!form)
		return;
    regex_output="";
    form.string.value="";
    form.output.value="";
    form.begin.checked=false;
    form.end.checked=false;
    regex_checktype();
}

function regex_append(data) {
    regex_output+=data;
    var form=document.getElementById('regex');
    var res='';
    if(form.begin.checked)
        res='^';
    res+=regex_output;
    if(form.end.checked)
        res+='$';
    form.output.value=res;
}

function regex_checktype() {
    var form=document.getElementById('regex');
    var type=form.type.value;
	//alert(type);
    if(type=="wild" || type=="char")
        form.string.disabled=true;
    else
        form.string.disabled=false;
}

function regex_addmatch() {
    var form=document.getElementById('regex');
    var type=form.type.value;
    var input=form.string.value;
    if(type=="wild")
        regex_append(".*");
    else if(type=="char")
        regex_append(".");
    else if(type=="string" && input!="")
        regex_append(regex_escape(input));
    else if(type=="wildwith" && input!="")
        regex_wildwith(input);
    else if(type=="single" && input!="")
        regex_append("["+regex_escape(input)+"]");
    else if(type=="notsingle" && input!="")
        regex_append("[^"+regex_escape(input)+"]");
    form.string.value="";
}

function regex_wildwith(input) {
    if(input.length==1)
        regex_append(regex_escape(input)+"*");
    else
        regex_append("["+regex_escape(input)+"]*");
}

function regex_escape(input) {
    ret=input;
    var chars="\\.*[]^$(){}?+|:".split("");
    for(var i in chars) {
        ret=ret.replace(chars[i],"\\"+chars[i]);
    }
    return ret;
}
