// Common JavaScript functions

var dofilter = false; // Enable file filter
var re = /^(\.php)|(\.sh)|(\.inc)|(\.htm)|(\.html)|(\.xml)|(\.xhtml)|(\.xslt)|(\.cgi)|(\.js)|(\.jsp)/; // Disallow these file types
var myButtonEnabled = 1;


function getObj(arg) {
	var obj = (document.getElementById) ? document.getElementById(arg) : eval("document.all['" + arg + "']");
	return obj;
}

function showHideBlock(objName, show) {
	var object = getObj(objName);
	
	if (show == "hide") {
		object.style.display = "none";
	} else if (show == "show") {
		object.style.display = "";
	} else {
		if (object.style.display == "none") {
	    	object.style.display = "";    
		} else {
			object.style.display = "none";
		}
	}
}

function checkForm() {

    var inputs = document.getElementsByTagName('input');
    var file_values = "";
    var files_num = 0;
    var recipient_values = "";
    var recipient_num = 0;

    for(i=0 ; i < inputs.length; i++) {

    	if (inputs[i].getAttribute('name')) {
	
	    	if(inputs[i].getAttribute('name').match(/^recip_email_/)) {
				recipient_num++;
				var PosA = inputs[i].value.indexOf("@");
				var PosP = inputs[i].value.lastIndexOf(".");
				
				if(inputs[i].value != "" && (PosA == -1 || PosP == -1 || PosA > PosP) ) {
	    	    	alert("Recipient's e-mail address incorrect!");
		    		
	    	    	// If error is not in the 1st recipient's field, show DIV of all recipients
		    		if (recipient_num > 2) {
						showHideBlock("more_recipient", "show");
		    		}
		    		inputs[i].focus();
		    		
		    		return false;
				}
				recipient_values += inputs[i].value;
	    	}

	    	if(inputs[i].getAttribute('type') == "file") {
	    		files_num++;
	    		file_values += inputs[i].value;
	    	}
		}
    }

    if (document.mammutmail.sender_email.value != "") {
    	
    	var PosA = document.mammutmail.sender_email.value.indexOf("@");
  		var PosP = document.mammutmail.sender_email.value.lastIndexOf(".");
  		
  		if(PosA == -1 || PosP == -1 || PosA > PosP) {
    		alert("Sender's e-mail address incorrect!");
    		document.mammutmail.sender_email.focus();
    		return false;
    	}
    }

    if (recipient_values == "") {
    	alert("Recipient's e-mail address missing!");
		document.mammutmail.recip_email_1.focus();
        return false;
    }
    
    // Remove duplicated recipients
    for(var j = 1; j <= recipient_num; j++) {
    	var recip1 = getObj('recip_email_' + j);
		
		for(var k = j+1; k <= recipient_num; k++) {
			var recip2 = getObj('recip_email_' + k);
	    	if (recip1.value == recip2.value && recip1.value != "") {
				recip2.value = "";
	    	}
		}
    }

    if (file_values == "") {
		alert("No uploaded file specified!");
		document.mammutmail.upload_file_1.focus();
        return false;
    }

    // Warning for duplicated file selection
    for(j = 1; j <= files_num; j++) {
    	var file1 = getObj('upload_file_' + j);
		
		for(k = j+1; k <= files_num; k++) {
			var file2 = getObj('upload_file_' + k);
	    	if (file1.value == file2.value && file1.value != "") {
				alert("Selected files are duplicated!");
				file2.focus();
				return false;
	    	}
		}
    }

    return true;
}

function checkFileType() {
	
	if (dofilter == false) {
		return true;
	}
	
	with (document.mammutmail) {
		for(i = 0; i < elements.length; i++) {
			if (elements[i].value.match(re)) {
				alert('Disallow file type: ' + elements[i].value);
				return false;
			}
		}
	}
	return true;
}


function submitForm() {
	
	if(checkForm() == false) {
		return false;
	}

	if(checkFileType() == false) {
		return false;
	}
	
    var Controls = getObj('upload_form');
    var Progress = getObj('upload-progress');
    
    Controls.style.display = "none";
    Progress.style.display = "block";

   	d = new Date();
	t = Math.random() + d.getTime();
	sid = hex_md5(t + " ");
	document.mammutmail.usercode.value = sid;
	
 	if (myButtonEnabled==1) { 
		myButtonEnabled=0;
		document.mammutmail.submit();
		return true;
		document.mammutmail.reset();
	}
}


