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)
{
	var amp, end, arr
	//check length
    if (strEmail.length < 5)
		{
        return false;
        }        
     //has at least one "@"   
    if(strEmail.search("@")==-1)
        {    
		return false;
		}
	else
		{
		amp = strEmail.search("@");
		}		
	//has at least one "."  
    if(strEmail.search(/\./)==-1)
        {
		return false;
		} 				
    //has no "_" after the "@"
    if (strEmail.search("_")!=-1)
        {
        end = strEmail.slice(amp);        
        if(end.search("_")!=-1)
			{
			return false;
			}
        }
     //has only one "@"
      arr = strEmail.split("@");
      if(arr.length>2)
		{
		return false;	
		}
	//check each char for validity	
	strEmail = strEmail.split("");
	for(index=0;index<strEmail.length;index++)
	{
		if(!sytstem_IsNumeric(strEmail[index])&&
			!sytstem_IsAlpha(strEmail[index])&&
			strEmail[index]!="_"&&
			strEmail[index]!="."&&
			strEmail[index]!="@"&&
			strEmail[index]!="-")
		{
			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)
{
	strParameterName = strParameterNameP.toUpperCase();
	var strOldURL = strOldURLP.toUpperCase();
	var strNewURL;
	var arrOldURL = strOldURL.split(strParameterName + "=");
	strNewValue = strNewValueP.toString().toUpperCase();
	if (arrOldURL.length==1)
	{
		if (strOldURL.search(/\?/)==-1)
		{
			strNewURL = strOldURL + "?" + strParameterName + "=" + strNewValue;
		}
		else
		{
			strNewURL = strOldURL + "&" + strParameterName + "=" + strNewValue;
		}
	}
	else
	{
		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 ShortPath(strPath,nMaxCharacters,nCaptionSize)
{
	if(strPath.length<=nMaxCharacters)
		return;
	var nElemNum=0;
	var arrIndexes = strPath.split(">")
	var arrLen=arrIndexes.length-1;
	var nCharactersLeft=0;
	var nSize=0
	for(var index=0;index<arrLen;index++)
	{
		var text=arrIndexes[index];
		if(text.length>nCaptionSize)
			text = text.substr(0, nCaptionSize) + "...";		
		text+= " > ";
		text=system_Trim(text);
		nSize+=text.length;
		if(nSize<=nMaxCharacters)
			nElemNum++;
		else
		{
			nCharactersLeft=nSize-nMaxCharacters;
			if(nCharactersLeft>12)
				nElemNum++;
			break;
		}
	}

	var nBoundryA=(nElemNum-(nElemNum%2))/2
	var nBoundryB=(nElemNum+(nElemNum%2))/2
	var sNewPath="";

	for(index=0;index<arrLen;index++)
	{
		
		if (index < nBoundryA || (index >= arrLen-nBoundryB))
		{
			var text=arrIndexes[index];
			if(text.length>nCaptionSize)
				text = text.substr(0, nCaptionSize) + "...";
			sNewPath+=system_Trim(text)+" > ";
		}
		else if(index==nBoundryA)
		{
			if(nCharactersLeft>12)
			{
				index++;		
				var text=arrIndexes[index];
				if(text.length>nCaptionSize)
					text = text.substr(0, nCharactersLeft) + "...";
				sNewPath+=system_Trim(text)+" > ";
			}				
			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);	
	}
	return sRetHTML;	
}

function system_CharacterRangeIsValid(strText, strValidCharRange)
{
var vCharRange;
var m_sValidCharRange = strValidCharRange;
var m_strText = strText;
var strCharCode;
var strLBoundCharCode;
var strUBoundCharCode;
var strRes="";
var vLimits;
var uBound;

if(m_sValidCharRange.length==0)
	{
	return true;
	}
	
//remove brackets
m_sValidCharRange = m_sValidCharRange.slice(1);
vCharRange = m_sValidCharRange.split("]");
m_sValidCharRange = vCharRange.join("");

//remove spaces
m_strText = m_strText.split(" "); 
m_strText = m_strText.join("");

if(m_strText.length==0)
	{
	return true;
	}

if(m_sValidCharRange.search("-")==-1)
	{
	//check each letter in char range against input text
	strRes="";
	for(var i=0; i<m_strText.length; i++)
		{
		strCharCode = m_strText.charCodeAt(i);
		for(var j=0; j<m_sValidCharRange.length; j++)
			{
			if( (strCharCode==10 || strCharCode==13 || strCharCode== 169 || strCharCode== 174 || strCharCode==8217 || (strCharCode>154 && strCharCode<158) || strCharCode>32 && strCharCode<128)  || strCharCode==m_sValidCharRange.charCodeAt(j) )
				{
				strRes = strRes + "1";
				}
			else
				{
				strRes = strRes + "0";
				}	
			}
		if(strRes.search("1")!=-1)
			{
			strRes = "";
			}
		else
			{
			return false;
			}				
		}
		return true;
	}	
	
for(var i=0; i<m_strText.length; i++)
	{
	strCharCode = m_strText.charCodeAt(i);
	if(m_sValidCharRange.search(" ")!=-1)
		{
		vCharRange = m_sValidCharRange.split(" ");
		uBound = vCharRange.length;
		}
	else
		{
		vCharRange = m_sValidCharRange;
		uBound = 1;
		}	
	for(var j=0; j<uBound; j++)  
		{
		if(uBound==1)
			{
			vLimits = m_sValidCharRange.split("-");
			}
		else
			{	
			vLimits = vCharRange[j].split("-");
			}
		strLBoundCharCode = vLimits[0];
		strLBoundCharCode = strLBoundCharCode.charCodeAt(0);
		strUBoundCharCode = vLimits[1];
		strUBoundCharCode = strUBoundCharCode.charCodeAt(0);
		if( (strCharCode==10 || strCharCode==13 ||  strCharCode== 169  || strCharCode== 174 || strCharCode==8217 || (strCharCode>154 && strCharCode<158) || strCharCode>32 && strCharCode<128) || (strCharCode>=strLBoundCharCode && strCharCode<=strUBoundCharCode) )
			{
			strRes = strRes + "1";
			}
		else
			{
			strRes = strRes + "0";
			}	
		}	
	if(strRes.search("1")!=-1)
		{
		strRes = "";
		}
	else
		{
		return false;
		}				
	}	
return true;	
}

/*
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);
}
*/
