function  system_GetTextFromHTML(sHTML)
{

	var sText="";              
	var nPos=0;              
	var nLowerThenPos;       
	var nGreaterThenPos; 
	var ssHTML=sHTML;
	nLowerThenPos=ssHTML.search("<");
	if(nLowerThenPos==-1)
		return ssHTML;				
	ssHTML=ssHTML.substr(nLowerThenPos+1,ssHTML.length-nLowerThenPos);
	while(ssHTML!="")
	{
		nGreaterThenPos=ssHTML.search(">");
		if(nGreaterThenPos==-1)
			break;
		nLowerThenPos=ssHTML.search("<");
		if(nLowerThenPos==-1)
			break;						
		sText=sText + ssHTML.substring(nGreaterThenPos+1,nLowerThenPos);
		ssHTML=ssHTML.substr(nLowerThenPos+1,ssHTML.length-nLowerThenPos);
	}
	return sText;
}	
function system_BreakString(strInput, intMaxLengthWithNoSpace)
{
  var intBreakTimes;
  var arrString = strInput.split(" ");
  for (var i = 0; i<arrString.length; i++)
  {
    if (arrString[i].length > intMaxLengthWithNoSpace)
    {
      intBreakTimes = arrString[i].length / intMaxLengthWithNoSpace
      for (var j =0;j<intBreakTimes;j++)
      {
        arrString[i] = arrString[i].substring(0,(j+1) * intMaxLengthWithNoSpace + j ) + " " + 
					   arrString[i].substring(intMaxLengthWithNoSpace * (j+1) + j);
      }
    }
  }
  return arrString.join(" ");
}

/*function sytstem_ValidateEmailAddress(strEmail)
{
    
	if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
    {
        return true;
    }
    else
    {
		return false;
    }
}*/


function sytstem_ValidateEmailAddress(strEmail)

{
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=strEmail.match(emailPat)
	if (matchArray==null) 
	{
	 	//alert("Email address seems incorrect (check @ and .'s)")
		return false
	}

	var user=matchArray[1]
	var domain=matchArray[2]
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
	 	  for (var i=1;i<=4;i++) 
	 	  {
		    if (IPArray[i]>255) 
		    {
		       // alert("Destination IP address is invalid!")
			return false
		    }
	    }
	    return true
	}
	var domainArray=domain.match(domainPat)
	if (domainArray==null) 
	{
		//alert("The domain name doesn't seem to be valid.")
	    return false
	}
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || 
	    domArr[domArr.length-1].length>3) {
	   //alert("The address must end in a three-letter domain, or two letter country.")
	   return false
	}
	if (len<2) {
	  // var errStr="This address is missing a hostname!"
	  // alert(errStr)
	   return false
	}
	return true;
}






function system_IsValidNumber(sNumber)
{
	sNumber = system_Trim(sNumber);
	if (!isNaN(sNumber))
	{
		sNumber = parseInt(sNumber);
		return true;
	}
	else
	{
		return false;
	}
}

function sytstem_IsNumeric(ch)
{
	if(ch >= "0" && ch <= "9")
		return true;
	else
		return false;
}
function sytstem_IsAlpha(ch)
{
	if(ch.toLowerCase()>="a"&&ch.toLowerCase()<="z")
		return true;
	else
		return false;
}

function system_ReplaceParameterInURL(strOldURLP,strParameterNameP,strNewValueP)
{
	var strParameterName = strParameterNameP;
	var strParameterNameUCase = strParameterName.toUpperCase();
	var strOldURL = strOldURLP;
	var strOldURLUCase = strOldURL.toUpperCase();
	var strNewURL;
	var arrOldURLUCase = strOldURLUCase.split(strParameterNameUCase + "=");
	var arrOldURL = new Array();
	var strNewValue = strNewValueP.toString();
	if (arrOldURLUCase.length==1)
	{
		if (strOldURL.search(/\?/)==-1)
		{
			strNewURL = strOldURL + "?" + strParameterName + "=" + strNewValue;
		}
		else
		{
			strNewURL = strOldURL + "&" + strParameterName + "=" + strNewValue;
		}
	}
	else
	{
		arrOldURL[0] = strOldURL.substr(0, arrOldURLUCase[0].length);
		arrOldURL[1] = strOldURL.slice(strOldURL.length - arrOldURLUCase[1].length);
		var arrAfterParameter = arrOldURL[1].split("&");
		if (arrAfterParameter.length == 1)
		{
			arrOldURL[1] = strNewValue;
		}
		else
		{
			arrAfterParameter[0] = strNewValue;
			arrOldURL[1] = arrAfterParameter.join("&");
		}
		strNewURL = arrOldURL.join(strParameterName + "=");
	}
	return strNewURL;
}

function system_Escape(str)
{
var sCharCode;
var sChar;
var vEscaped;
var strEscaped = str;
if (strEscaped.length ==0)
	{
	return "";
	}	
strEscaped = escape(strEscaped);
vEscaped = strEscaped.split("+");
strEscaped = vEscaped.join("%2B");
return strEscaped;	
}

function system_ShortPath(strPath,nElemNum,nCaptionSize)
{
	var nBoundryA=(nElemNum-(nElemNum%2))/2
	var nBoundryB=(nElemNum+(nElemNum%2))/2
	var sNewPath="";
	var arrIndexes = strPath.split(">")
	var arrLen=arrIndexes.length;

	for(var index=0;index<arrLen;index++)
	{
		
		if (index < nBoundryA || (index >= arrLen-nBoundryB-1)||(arrLen <= nElemNum))
		{
			var text=arrIndexes[index];
			if(text.length>nCaptionSize)
				text = text.substr(0, nCaptionSize) + "...";
			sNewPath+=system_Trim(text)
			if(index<arrLen-1)
				sNewPath+=" > ";
		}
		else if(index==nBoundryA)
		{
			sNewPath+="...> ";
		}
	}
	return sNewPath;
}	

function system_ReplaceToRelativeAddress(sHTML,sProtocol,sHost,sPath)
{
	var sRetHTML=sHTML.toString();
	if (sRetHTML < 8)
	{
		return sHTML;
	}
	var sHostPath=sProtocol + "//" + sHost +"/"
	var sign="%-%"
	var arr=sPath.split("/")
	var arrLen=arr.length-1;
	var nFolderLoc=arrLen-1;
				
	if (sRetHTML.search(sHostPath)==-1)
		return sRetHTML;
			
	sRetHTML=system_ReplaceCharInString(sHTML,sHostPath,sign+nFolderLoc,0);	
	for(var index=0;index<arrLen;index++)
	{
		if (arr[index]=="")
			continue;
		var sFind=sign+(nFolderLoc)+(arr[index])+"/"
		var sReplaceTo=sign+(--nFolderLoc);
			
		if (sRetHTML.search(sFind)!=-1)
			sRetHTML=system_ReplaceCharInString(sRetHTML,sFind,sReplaceTo,0);
		else
			break;
	}
		
	for(var i=0;i<arrLen;i++)
	{
		var sRelDir="";
		for(var j=0;j<i;j++)
		{
			sRelDir+="../"
		}
		sRetHTML=system_ReplaceCharInString(sRetHTML,sign+i,sRelDir,0);	
	}
	
	//praus01-Remove HTMLEditorFrame.asp and ArcDocHTMLEditorTB.asp inserted by IE in href for anchors and bookmarks.
	var sFind = "HTMLEditorFrame.asp"
	var sReplaceTo = ""
	if (sRetHTML.search(sFind)!=-1)
			sRetHTML=system_ReplaceCharInString(sRetHTML,sFind,sReplaceTo,0);
 
	sFind = "ArcDocHTMLEditorTB.asp"
	sReplaceTo = ""
	while (sRetHTML.search(sFind)!=-1)
	{
	    var sReplaceFrom = system_GetTextToReplace(sRetHTML,"ArcDocHTMLEditorTB.asp", "#" )
	    if (sReplaceFrom == "")
		break;
	    sRetHTML=system_ReplaceCharInString(sRetHTML,sReplaceFrom,sReplaceTo,0);
	}

	return sRetHTML;	
}

/*
function system_OpenPreviewWindow(strURL)
{
	var lWidth = window.screen.availWidth - 40;
	var lHeight = window.screen.availHeight - 80;
	var lLeft = (window.screen.availWidth-lWidth)/2;
	var lTop = (window.screen.availHeight-lHeight)/2;
	var strMainWinFeatures = "scrollbars=yes,toolbars=no,menubar=no,resizable=no,fullscreen=yes,";
	//strMainWinFeatures += "width=" + lWidth +  ",height=" + lHeight + ",left=" + lLeft + ",top=" + lTop;
	window.open(strURL,"Preview",strMainWinFeatures);
}
*/
function system_GetTextToReplace(sHTML,sStart,sEnd )
{

	var sText="";              
	var nPos=0;              
	var nLowerThenPos;       
	var nGreaterThenPos; 
	var ssHTML=sHTML;
	nLowerThenPos=ssHTML.search(sStart);
	if(nLowerThenPos==-1)
		return sText;				
	ssHTML=ssHTML.substr(nLowerThenPos,ssHTML.length-nLowerThenPos);
	nGreaterThenPos=ssHTML.search(sEnd);
	if(nGreaterThenPos==-1)
		return sText;
	nLowerThenPos=ssHTML.search(sStart);
	if(nLowerThenPos==-1)
		return sText;								
	sText=sText + ssHTML.substring(nGreaterThenPos,nLowerThenPos);

	return sText;
}	
