
// This file contains utility functions for AJAX calls

function createRequest () {

	//Create a boolean variable to check for a valid IE instance.
	var xmlhttp = false;

	//Check if we are using IE.
	try {
		//If the javascript version is greater than 5.
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		//If not, then use the older active x object.
		try {
			//If we are using IE.
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			//Else we must be using a non-IE browser.
			xmlhttp = false;
		}
	}

	//If we are using a non-IE browser, create a JavaScript instance of the object.
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		xmlhttp = new XMLHttpRequest();
	}

	return (xmlhttp);
}

function htmlEntities(rawtext){
    var i,c,santext='';
    for(i=0;i<rawtext.length;i++){
        c = rawtext[i].charCodeAt(0);
        if( (c > 47 && c < 58) || (c > 62 && c < 127) ){
            santext += rawtext[i];
        }else{
            santext += "&#" + c + ";";
        }
    }
    return santext;
}


function showMalCode(urlid) {

		var objID = "badcode" + urlid;
		var expID = "opencloseimg" + urlid;
		var san_snippet='';
		// snip_type = 1 (malicious), snip_type = 2 (suspicious)

		for(i=0;i<snip_array[urlid].length;i++) {
		    if (snip_type[urlid][i] == 2) {
			san_snippet += '<font color="darkorange">' + snip_array[urlid][i] + '</font><br>';
		    } else {
			san_snippet += '<font color="red">' + snip_array[urlid][i] + '</font><br>';
		    }
		}

		if (snip_showing[urlid] == false){

			document.getElementById(expID).src = "images/mins.gif";
			snip_showing[urlid] = true;

			var obj = document.getElementById(objID);
			obj.style.display = '';
			obj.innerHTML = san_snippet;

		} else {
			document.getElementById(expID).src = "images/plus.gif";
			snip_showing[urlid] = false;
			var obj = document.getElementById(objID);
			obj.style.display = 'none';
		}
}



function testIE () {

    var serverPage = "testIE.php";
    var testrequest=createRequest();


    testrequest.open("GET", serverPage);

    testrequest.onreadystatechange = function() {
    if (testrequest.readyState == 4 && testrequest.status == 200) {
	alert(testrequest.responseText);
         }
    }
    testrequest.send(null);
}

function AddUpdateButton(param) {
  var quarantine_button = document.getElementById("quarantine_button");
  var quarantining_alert_msg = document.getElementById("quarantining_alert_msg");
  var quarantining_checkbox = document.getElementsByName("enable_quarantining");
  var checked = quarantining_checkbox[0].checked;
  if (param == "N" && checked) {
    quarantining_alert_msg.innerHTML = "(Protections already sent.)";
    quarantine_button.innerHTML = "";
  } else {
    quarantine_button.innerHTML = "<input type=\"submit\" name=\"push_directives\" value=\"Update\"/>";
  }
}

function FlipCodeView(id) {
    var current_image_tag = document.getElementById(id);
    var code_snippet_div = document.getElementById("snip-" + id);
    var san_snippet='';

    // snip_type = 1 (malicious), snip_type = 2 (suspicious)
    for (i=0; i<snip_array[id].length; i++) {
	if (snip_type[id][i] == 2) {
	    san_snippet += '<font color="#D89539"><img src="images/suspicious.gif" /> ' + snip_array[id][i] + '</font><br>';
	} else {
	    san_snippet += '<font color="#cc0000"><img src="images/exclamation.gif" /> ' + snip_array[id][i] + '</font><br>';
	}
    }

    if (current_image_tag.src.match("images/expandicon_plus.gif")) {
	current_image_tag.src = "images/expandicon_minus.gif";
	code_snippet_div.style.display = '';
	code_snippet_div.innerHTML = san_snippet;
	snip_showing[id] = true;
    } else {
        current_image_tag.src = "images/expandicon_plus.gif";
	code_snippet_div.style.display = 'none';
	snip_showing[id] = false;
    }
}

