//$Id: commonutil.js,v 1.21 2006/11/28 12:44:14 nithiavani Exp $
function openWindow(theURL,winName,width,height,parms)
{
    var left = Math.floor( (screen.width - width) / 2);
    var top = Math.floor( (screen.height - height) / 2);
    var winParms = "top=" + top + ",left=" + left + ",height=" + height + ",width=" + width + ",resizable=1";
    if (parms) { winParms += "," + parms; }
    theURL=theURL.replace('+&+','+%26+');  // The URL for "Discover & Scan" in 'Task Status' will be like 'Discover+&+Scan', So replace '+&+' as '+%26+'.
    window.open(theURL, winName, winParms);
}

function checkedBoxes(url, frm, e, errMsg, confirmMsg)
{
    var sizeOfBoxes = e.length;
    var selectedEntity = false;
    var enableNonSecurity=0;
    if(sizeOfBoxes > 0)
    {	
    	for ( var i=0; i < sizeOfBoxes; i++)
    	{
        	if(e[i].checked == true)
        	{
                    // To enable Non-security scan type in scan page.
                    if (frm.osType)
                    {
                        if (frm.osType[i].value=="Windows") 
                                {
                                        enableNonSecurity=1;
                                }
                    }
                    selectedEntity = true;
        	}
    	}
    }
    else
    {
      if(e.checked == true)
      {
      	selectedEntity = true;
      }
      if (frm.osType)
      {   
          if (frm.osType.value=="Windows")
          {
            enableNonSecurity=1;
          }
      }
    }
    if(selectedEntity == false)
    {
        alert(errMsg);
        return;
    }

    var con = true;
    if(confirmMsg != '')
    {
        con = confirm(confirmMsg);
    }
    if ( con != true)
    {
        return;
    }
    else
    {
	/*
        url = url + selectedEntity;
        //eval("parent.location");
        location.href = url;
	*/
	var enablens=(enableNonSecurity==1)?"&showns="+enableNonSecurity:'';
	url=url+enablens;
	frm.action=url;
	frm.submit();
    }
}    

function alternateRows(id,evenClass,oddClass)
{
      var even = false;
      var table = document.getElementById(id);
      if (! table) { return; }
      var tbodies = table.getElementsByTagName("tbody");
      for (var h = 0; h < tbodies.length; h++)
			{
		       var trs = tbodies[h].getElementsByTagName("tr");
		       for (var i = 0; i < trs.length; i++)
					 {
					     var tds = trs[i].getElementsByTagName("td");
					     for (var j = 0; j < tds.length; j++)
							 {
							    var mytd = tds[j];
							    //mytd.setAttribute("class",even ? evenClass : oddClass);
							    mytd.ClassName=(even ? evenClass : oddClass);
							 }
							 even =  ! even;
					 }
			}
}

function IsNumeric(sText)
{
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;

	for (i = 0; i < sText.length && IsNumber == true; i++) 
	{ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) 
		{
			IsNumber = false;
		}
	}

	return IsNumber;
}

if (!document.layers&&!document.all&&!document.getElementById)
{
				event="test"
}

function showtip(current,e,text)
{
				if (document.all||document.getElementById)
				{
							thetitle=text.split('<br>')
							if (thetitle.length>1)
							{
								thetitles=''
								for (i=0;i<thetitle.length;i++)
								{
									thetitles+=thetitle[i]
								}
								current.title=thetitles
							}
							else
							{
								current.title=text
							}
				}
				else if (document.layers)
				{
			      document.tooltip.document.write('<layer bgColor="#FFFFE7" style="border:1px solid black;font-size:12px;">'+text+'</layer>')
										document.tooltip.document.close()
										document.tooltip.left=e.pageX+5
										document.tooltip.top=e.pageY+5
										document.tooltip.visibility="show"
				}
}

function hidetip()
{
    if (document.layers)
		{
												document.tooltip.visibility="hidden"
		}
}

// For the Progress Bar Stuff
function setElementValue(elementID , v)
{       
    var obj = document.getElementById(elementID);
    if(obj)
    obj.value = v;
}

// To check the time format
function checkForTimeFormat(timeVal)
{
    var regex = new RegExp("(([0-1][0-9])|([2][0-3])):([0-5][0-9]):([0-5][0-9])");
    if (timeVal.match(regex))
    { 
        return true;
    } else 
    {
        alert("Please enter the correct time."); 
        return false;
    } 
    
}

function isMultipleEmailId(str)
{

    // No email checking as the address can be anything
    // so returning true here
    return true;

  /*****************************************************************
        Input   :  str
        purpose :  To validate for multiple email ids
        output  :  valid email true/false
  *******************************************************************/
  var emailIds = str.split(',');
  for(var i = 0; i < emailIds.length; i++)
  {
     if(!isEmailId(emailIds[i]))
     {
        return false;
     }
  }
  return true;
}

function isEmailId(str)
{

    // No email checking as the address can be anything
    // so returning true here
    return true;

  /*****************************************************************
        Input   :  str
        purpose :  To validate for email
        output  :  valid email true/false
  *******************************************************************/
 // str = trimAll(str);
 var objRegExp  = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,3}(\.[a-z]{2}){0,2})$/i;
  return objRegExp.test(str);
}

function emailvalidate(addrVal1) 
{

    // No email checking as the address can be anything
    // so returning true here
    return true;


if(isMultipleEmailId(addrVal1))
{
return true;
}
else
{
alert("Invalid email address! Please re-enter.");
return false;
}
/*
alert(addrVal1);
addrVal=addrVal1.split(",");
alert(addrVal.length);
flag=true;
for(var j=0;j<addrVal.length;j++)
{
  if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(addrVal[j]))
  {
  }
  else
  {
	flag=false;
  }
}

if(!flag)
{
  alert("Invalid email address! Please re-enter.");
  return false;
}
return true;
*/
}

function trim(inputString) {
  if (typeof inputString != "string") { return inputString; }
  var retValue = inputString;
  var ch = retValue.substring(0, 1);
  while (ch == " ") {
     retValue = retValue.substring(1, retValue.length);
     ch = retValue.substring(0, 1);
  }
  ch = retValue.substring(retValue.length-1, retValue.length);
  while (ch == " ") {
     retValue = retValue.substring(0, retValue.length-1);
     ch = retValue.substring(retValue.length-1, retValue.length);
  }
  while (retValue.indexOf("  ") != -1) {
     retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
  }
  return retValue; // Return the trimmed string back to the user
} // Ends the "trim" function

function loadImageMap(id,imgmap)
{
var el=document.getElementById(id);
if(el)
{
el.innerHTML=imgmap;
}
}//end of function

// Function for valid port
function isValidPortNumber(portNum)
{

    var regex = /^(6553[0-5]|655[0-2]\d|65[0-4]\d\d|6[0-4]\d{3}|[1-5]\d{4}|[1-9]\d{0,3}|1)$/;
    var match = regex.test(portNum);
    if (match) {
        return true;
    } 
    alert("Please enter the proper port number"); 
    return false;
    
}

function getCustomAlert(width){

	var code = "<Table border='0'";
        if(width == null){
            code=code.concat(" width='360' ");
            width=360;
        }else code=code.concat(" width='"+width+"' ");

        code=code.concat("class='customAlert' cellpadding='0' cellspacing=0><tr><td class='caTopLeft'></td><td class='caTopCenter' colspan='2'></td><td class='caTopRight'></td></tr>");
        code = code.concat("<tr><td class='caMiddleLeft'></td><td class='caMessage'>$MESSAGE</td><td class='caClose'>");
        if(width != 160 && width > 160){
        code=code.concat("<button class='caCloseBtn' onClick='hideCustomMessage()'>");
        }
        code=code.concat("</td><td class='caMiddleRight'></td></tr>");
        code = code.concat("<tr><td class='caBottomLeft'></td><td class='caBottomCenter' colspan='2'></td><td class='caBottomRight'></td></tr>");
        code = code.concat("</table>");

	/*
	var code="<table class='outbrd1' border='0' cellpadding='2' cellspacing='0'>";
	code+="<tr><td width='100%' height='20' class='tbband1'>$TITLE";
	code+="</td><td width='28' class='tbband1' align='center'><button class='caCloseButton' onClick='hideCustomMessage()'></td></tr>";

	code+="<tr><td colspan='2'>";
	code+="<table class='trinner1' cellpadding='2' cellspacing='0'>";
	code+="<tr>";
	code+="<td>";
	code+="$MESSAGE";
	code+="</td>";
	code+="<!--td valign='top'>";
	code+="<button class='caCloseButton' onClick='hideCustomMessage()'>"
	code+="</td-->";
	code+="</tr>";
	code+="</table>";

	code+="</td></tr>";
	code+="</table>";
	*/
        return code;
}
function showCustomMessage(message, curId, width){
        var obj = document.getElementById("customAlertMessage");
        var code = getCustomAlert(width);
        code = code.replace("$MESSAGE", message);
        //code = code.replace("$TITLE", title);
        obj.innerHTML = code;
        obj.style.left = findPosX(getObj(curId))-5;
        obj.style.top = findPosY(getObj(curId)) + 12;
        //obj.style.width = document.getElementById(curId).parentNode.offsetWidth;
        //obj.style.width = 360;
        obj.className = 'show';
}

function hideCustomMessage(){
        document.getElementById("customAlertMessage").className = "hide";
}
if (document.all)
	var browser_ie=true
else if (document.layers)
	var browser_nn4=true
else if (document.layers || (!document.all && document.getElementById))
	var browser_nn6=true

function getObj(n,d) {
  var p,i,x; 
  if(!d)
      d=document;
   
  if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
  }

  if(!(x=d[n])&&d.all)
      x=d.all[n];
 
  for(i=0;!x&&i<d.forms.length;i++)
      x=d.forms[i][n];
 
  for(i=0;!x&&d.layers&&id.layers.length;i++)
      x=getObj(n,d.layers[i].document);
 
  if(!x && d.getElementById)
      x=d.getElementById(n);

  return x;
}

function findPosX(obj) {
	var curleft=0;
	if (document.getElementById || document.all) {
		while (obj.offsetParent) {
			//alert(obj.offsetLeft)
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	} else if (document.layers) {
		curleft += obj.x;
	}

	return curleft;
}

function findPosY(obj) {
	var curtop=0;
	if (document.getElementById || document.all) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	} else if (document.layers) {
		curtop += obj.y;
	}

	return curtop;
}