// getXMLHttpRequest object
function getXMLHttpRequestObject(){
    var xmlobj;
    // check for existing requests
    if(xmlobj!=null&&xmlobj.readyState!=0&&xmlobj.readyState!=4){
        xmlobj.abort();
    }
    
    try {
	// instantiate object for Mozilla, Nestcape, etc.
        xmlobj=new XMLHttpRequest();
    }
    catch(e){
        try{
            // instantiate object for Internet Explorer
            xmlobj=new ActiveXObject('Microsoft.XMLHTTP');
        }
        catch(e){
            // Ajax is not supported by the browser
            xmlobj=null;
            return false;
        }
    }
    return xmlobj;
}

function submitScanResults(infectedCount,files,viruses) {
    // open socket connection
    feedbackXMLHttpObj.open('POST',base_url+'/utils/processor.php',true);
    // set form http header
    feedbackXMLHttpObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');

    viruses_str = '';
    for (i=0;i<files.length;i++)
	viruses_str+='&files['+i+']='+urlencode(files[i]);
    for (i=0;i<viruses.length;i++)
	viruses_str+='&viruses['+i+']='+urlencode(viruses[i]);

    feedbackXMLHttpObj.send("infectedCount="+infectedCount+viruses_str+"&do=submitScanResults");    
    feedbackXMLHttpObj.onreadystatechange=verifyURLChecker;
}
function tellAFriendRequest()
{
    // open socket connection
    feedbackXMLHttpObj.open('POST',base_url+'/utils/processor.php',true);
    // set form http header
    feedbackXMLHttpObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
    // get form values and send http request
    var var_str = getFormValues(document.getElementById('f_tellafriend'))+"&do=tellAFriend";                            
    document.getElementById('tell_submit').disabled = true;

    feedbackXMLHttpObj.send(var_str);
    feedbackXMLHttpObj.onreadystatechange=verifyURLChecker;
                                        
}
function feedbackRequest()
{
    // open socket connection
    feedbackXMLHttpObj.open('POST',base_url+'/utils/processor.php',true);
    // set form http header
    feedbackXMLHttpObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
    // get form values and send http request
    var var_str = getFormValues(document.getElementById('f_feedback'))+"&do=feedback&pl="+window.navigator.platform+"&cc="+window.navigator.cpuClass;
    document.getElementById('feedback_submit').disabled = true;

    feedbackXMLHttpObj.send(var_str);
    feedbackXMLHttpObj.onreadystatechange=verifyURLChecker;
                                        
}
// check status of email requester object
function verifyURLChecker(){
    // if mail request is completed
    if(feedbackXMLHttpObj.readyState==4){
        if(feedbackXMLHttpObj.status==200){
	    // if status == 200 display server response
    	    displayServerResponse();
        }
        else{
            // alert('Failed to get response :'+feedbackXMLHttpObj.statusText);
        }
    }
}

// display server response
function displayServerResponse(){
    var response = feedbackXMLHttpObj.responseText;
    
    //OK = generic ok
    if (response == 'OK')
    {
	// empty
    }
    else if (response == 'OK1')
    {
	// document.getElementById('f_verify').elements[0].value = '';
	document.getElementById('f_tellafriend').elements[1].value = 'your friend e-mail';
	document.getElementById('f_tellafriend').elements[2].value = 'enter verification code';
	
	var img = document.getElementById('img_code1');
	var date = new Date;
	var time = date.getTime();
	img.setAttribute("src", "/utils/captcha.php?r=1&uid="+time);
	
	// document.getElementById("loading").style.display = "none";
	document.getElementById("tell_result").style.color = "#4CA90B";
	document.getElementById("tell_result").innerHTML = "An email has been sent.";
	document.getElementById("tell_result").style.display = "inline";
	document.getElementById("tell_submit").disabled = false;
    }
    else if (response == 'ERR1_CAPTCHA')
    {
	document.getElementById('f_tellafriend').elements[2].value = 'enter verification code';
	
	var img = document.getElementById('img_code1');
	var date = new Date;
	var time = date.getTime();
	img.setAttribute("src", "/utils/captcha.php?r=1&uid="+time);
	                        
	// document.getElementById("loading").style.display = "none";
	document.getElementById("tell_result").style.color = "#D3101E";
	document.getElementById("tell_result").innerHTML = "Invalid captcha code.";
	document.getElementById("tell_result").style.display = "inline";
	document.getElementById("tell_submit").disabled = false;
    }
    else if (response == 'OK2')
    {
	// document.getElementById('f_verify').elements[0].value = '';
	document.getElementById('f_feedback').elements[0].value = 'your e-mail address';
	document.getElementById('f_feedback').elements[1].value = 'your feedback message';
	document.getElementById('f_feedback').elements[2].value = 'enter verification code';
	
	var img = document.getElementById('img_code2');
	var date = new Date;
	var time = date.getTime();
	img.setAttribute("src", "/utils/captcha.php?r=2&uid="+time);
	
	// document.getElementById("loading").style.display = "none";
	//document.getElementById("feedback_result").style.color = "#4CA90B";
	//document.getElementById("feedback_result").innerHTML = "Thank you for your feedback.";
	//document.getElementById("feedback_result").style.display = "inline";
	//document.getElementById("feedback_submit").disabled = false;
	
	/* il ascundem pana la urma */
	document.getElementById("wrap").style.color = "#4CA90B";
	document.getElementById("wrap").innerHTML = "<center><b><p style=\"margin-top: 80px;\">Thank you for your feedback.</p></b></center>";
	//document.getElementById('f_feedback').style.display = 'none';
    }
    else if (response == 'ERR2_CAPTCHA')
    {
	document.getElementById('f_feedback').elements[2].value = 'enter verification code';
	
	var img = document.getElementById('img_code2');
	var date = new Date;
	var time = date.getTime();
	img.setAttribute("src", "/utils/captcha.php?r=2&uid="+time);
	                        
	// document.getElementById("loading").style.display = "none";
	document.getElementById("feedback_result").style.color = "#D3101E";
	document.getElementById("feedback_result").innerHTML = "Invalid captcha code.";
	document.getElementById("feedback_result").style.display = "inline";
	document.getElementById("feedback_submit").disabled = false;
    }
    else
    {
	document.getElementById("tell_submit").disabled = false;
	document.getElementById("feedback_submit").disabled = false;
    }
}

// get form values
function getFormValues(fobj){
    var str='';
    for(var i=0;i< fobj.elements.length;i++){
        str+=fobj.elements[i].name+'='+ escape(fobj.elements[i].value)+'&';
    }
    str=str.substr(0,(str.length-1));
    return str;
}

function urlencode(str) {
    str = (str+'').toString();
    return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
}

// instantiate feedback XMLHttpRequest object
var feedbackXMLHttpObj=getXMLHttpRequestObject();