function disableForm()
{
	var limit = document.tx_bugman_pi1_bugform.elements.length;
	for (i=0 ; i < limit ; i++)
	{
		document.tx_bugman_pi1_bugform.elements[i].disabled = true;
	}
};

var FileTypeAssistent =
{
	register: function(event)
	{
		Event.observe("data","change",FileTypeAssistent.correctFiletype.bindAsEventListener(this));
	},

	correctFiletype : function(event){
		var tFilename = document.tx_bugman_pi1_bugform.data.value;
		var tExt = tFilename.substring(
		tFilename.lastIndexOf(".")+1,
		tFilename.length).toLowerCase();

		var tNewIndex = -1;
		switch (tExt){
			case ("txt") :
			case ("log") :
			case ("")    : {
				tNewIndex = 0;
				break;
			}
			case ("htm")  :
			case ("html") :
			case ("xhtml"): {
				tNewIndex = 1;
				break;
			}
			case ("xml") : {
				tNewIndex = 2;
				break;
			}
			case ("gif") : {
				tNewIndex = 3;
				break;
			}
			case ("jpg" || "jpeg") : {
				tNewIndex = 4;
				break;
			}
			case ("png") : {
				tNewIndex = 5;
				break;
			}
			default : {
				tNewIndex = 6;
				break;
			}
		}

		document.tx_bugman_pi1_bugform.contenttypeselection.options[tNewIndex].selected=true;
	}
};

Event.observe(window,"load", FileTypeAssistent.register.bindAsEventListener(FileTypeAssistent));


function validateForm()
{
	var tFormIsValid = true;
	//valid name
	Try.these(function(){$("error_name").style.display = "none";});
	//var tName = Form.getInputs(tx_bugman_pi1_bugform,"text","name")[0].value;
	var tName = document.forms.tx_bugman_pi1_bugform.name.value;
	if (trimString(tName) == "")
	{
		tFormIsValid = false;
		setFieldError("error_name");
	}

	//valid company
	Try.these(function(){$("error_company").style.display = "none";});
	//var tCompany = Form.getInputs(tx_bugman_pi1_bugform,"text","company")[0].value;
	var tCompany = document.forms.tx_bugman_pi1_bugform.company.value;
	if (trimString(tCompany) == ""){
		tFormIsValid = false;
		setFieldError("error_company");
	}

	//email
	Try.these(function(){$("error_email").style.display = "none";});
	//var tEmail = Form.getInputs(tx_bugman_pi1_bugform,"text","email")[0].value;
	var tEmail = document.forms.tx_bugman_pi1_bugform.email.value;
	var tEmailFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})$/;
	if (tEmailFilter.test(tEmail) == false){
		tFormIsValid = false;
    //alert("email-validation is disabled");
		setFieldError("error_email");
	}

	//valid product selection
	Try.these(function(){$("error_product").style.display = "none";});
	var tProductSelected = $("product").selectedIndex != 0;
	if (!tProductSelected){
		tFormIsValid = false;
		setFieldError(
			"error_product");
	}

	//valid opsys
	Try.these(function(){$("error_opsys").style.display = "none";});
	var tOpsysSelected = $("op_sys").selectedIndex != 0;
	if (!tOpsysSelected){
		tFormIsValid = false;
		setFieldError(
			"error_opsys");
	}

	//valid bug-summary
	Try.these(function(){$("error_summary").style.display = "none";});
	//var tSummary = Form.getInputs(tx_bugman_pi1_bugform,"text","summary")[0].value;
	var tSummary = document.forms.tx_bugman_pi1_bugform.summary.value;
	if (trimString(tSummary) == ""){
		tFormIsValid = false;
		setFieldError("error_summary");
	}

	return tFormIsValid;
};

function setFieldError(pItemId)
{
	$(pItemId).style.display = "block";
}


function trimString(pString)
{
	var tTrimmedString = "";
	var tCount = 0;
	var tArray = pString.split(" ");
	for (var i = 0 ; i < tArray.length ; i++){
		if (tArray[i] != ""){
			if (tCount == 0) tTrimmedString = tArray[i];
			else tTrimmedString = tTrimmedString + " " + tArray[i];
			tCount++;
		}
	}
	return tTrimmedString;
}

function json2array(pJsonObject)
{
	var tResultArray = new Array();
	var i = 0;
	while (pJsonObject[i] != undefined)
	{
		tResultArray.push(pJsonObject[i]);
		i++;
	}
	return tResultArray;
}


function showConfirmation(pContent)
{
	$("tx_bugman_pi1_content").innerHTML = pContent;
}

function startCallback()
{
	return submitBug();
}

function completeCallback(response)
{
	Try.these(function(){$("tx_bugman_pi1_item_submitindicator").style.display = "none"});
	return response!=undefined?response:"";
}

BUGMAN = {

    frame : function(c) {

        var n = 'f' + Math.floor(Math.random() * 99999);
        var d = document.createElement('DIV');
        d.innerHTML = '<iframe style="display:none" src="about:blank" id="'+n+'" name="'+n+'" onload="BUGMAN.loaded(\''+n+'\')"></iframe>';
        document.body.appendChild(d);

        var i = document.getElementById(n);
        if (c && typeof(c.onComplete) == 'function') {
            i.onComplete = c.onComplete;
        }

        return n;
    },

    form : function(f, name) {
        f.setAttribute('target', name);
    },

    submit : function(f, c) {

        BUGMAN.form(f, BUGMAN.frame(c));
        if (c && typeof(c.onStart) == 'function') {
            return c.onStart();
        } else {
            return true;
        }
    },

    loaded : function(id) {
        var i = document.getElementById(id);
        if (i.contentDocument) {
            var d = i.contentDocument;
        } else if (i.contentWindow) {
            var d = i.contentWindow.document;
        } else {
            var d = window.frames[id].document;
        }
        if (d.location.href == "about:blank") {
            return;
        }

        if (typeof(i.onComplete) == 'function') {
            i.onComplete(d.body.innerHTML);
        }
    }
}

