//global vars
var debug0=0;


function testacc(accessform) {
        var myreq=new xml_tool();
        //myreq.setLoadingDiv(parent.document.getElementById('loading'));
        myreq.user_event_handler_loaded=function (obj) {
                var retval;
                if(obj.status==200) {
                        if(obj.responseXML.documentElement) {
                                var resp_cod=parseInt(myreq.dom_get_bytagname_first(obj.responseXML.documentElement,'cod'));
                                var resp_msg=myreq.dom_get_bytagname_first(obj.responseXML.documentElement,'msg');
                        } else {
                                alert('Erro inesperado, contate o administrador');
                                return false;
                        }
                        if(resp_cod < 0) {
                        	alert(resp_msg);
                        } else {
	                        var grantaccess=parseInt(myreq.dom_get_bytagname_first(obj.responseXML.documentElement,'grantaccess'));
	                        var correctcred=parseInt(myreq.dom_get_bytagname_first(obj.responseXML.documentElement,'correctcred'));
	                        var dest_app=myreq.dom_get_bytagname_first(obj.responseXML.documentElement,'dest_app');
            				if(! correctcred) {
			            		alert('Usuario ou senha invalidos.');
            					return;
            				}
            				if(grantaccess) {
                                if(dest_app!=null && dest_app!="undefined" && dest_app.length>1) {
                                    accessform.selectedapp.value=dest_app;
                                }
            					runapp(accessform);
            				} else {
            					var selapp=accessform.selectedapp.value;
            					if(selapp=='groupware')
            						offer_xchange(accessform);
            					if(selapp=='exchange')
            						offer_msexchange(accessform);
            					if(selapp=='exchange2010')
            						offer_msexchange2010(accessform);
            					if(selapp=='im')
            						offer_im(accessform);
				            }
			            }
                } else {
                        if(obj.status!=0) alert('Erro: HTTP '+obj.status);
                        obj.abort();
                        retval=false;
                }
                return retval;
        }
        myreq.setContentType('text/xml; charset=UTF-8');
        myreq.sendreq('/login/testaccess.cgi','POST',form2xml(accessform));
}



function form2xml(form) {
	var xmlDoc;
	if(window.ActiveXObject) {
		xmlDoc=new ActiveXObject('Microsoft.XMLDOM'); 
		xmlDoc.appendChild(xmlDoc.createElement('access'));
		xmlDoc.insertBefore(xmlDoc.createProcessingInstruction("xml", 'version="1.0" encoding="UTF-8"'),xmlDoc.firstChild);
	} else if (document.implementation && document.implementation.createDocument) {
		if(isOP) {
			xmlDoc=document.implementation.createDocument('', 'access', null); 
		} else {
			xmlDoc=new DOMParser().parseFromString("<?xml version='1.0' encoding='UTF-8'?><access/>","application/xml");
		}
	} else {
		return;
	}

	var root=xmlDoc.documentElement;
	//workaround opera
	createtext_el=function(parent_el,element,val) {
		var el=xmlDoc.createElement(element);
		el.appendChild(xmlDoc.createTextNode(val));
		parent_el.appendChild(el);
	}

	var app_to_run;
	var g_form=form;
	for(i=0;i<g_form.app.length;i++) {
		if(g_form.app[i].checked)
			app_to_run=g_form.app[i].value;
	}

	createtext_el(root,'app',app_to_run);
	createtext_el(root,'email',form.g_username.value);
	createtext_el(root,'senha',escape(form.g_password.value));
	if(debug0) {
		var xs = new XMLSerializer();
	        var str = xs.serializeToString(xmlDoc);
	        alert(str);
	}

	return(xmlDoc);
}

