
// left and right functions in java
//----------------------------------------------



function ReturnZonesOfReports(cZoneArray){
//start say added
var ZoneArray = cZoneArray 
var flagCanDo
var flagCanDox

	flagCanDo = false
	ZoneArray = ZoneArray.split(";")
	for(i=0; i<ZoneArray.length; i++)
	{
		if (ZoneArray[i]=='29') {   // for only karshenasan keshvari ke ekhtiar tam darand . can get any report of all stat 
		flagCanDo = true		// 
		}
	}

	return flagCanDo ;
}




function ReturnIEType()
{  // say added. not commplete this function . ba kami tagheer dar an mitavan an ra kamel nemood 87 03 12
	var uagent ;
	var IE5;
	var IEold;
	uagent = window.navigator.userAgent.toLowerCase();
	IEold=false;IE5=(uagent.indexOf('msie 5.0') != -1)?true:false;IE4=(uagent.indexOf('msie 4') != -1)?true:false;if(IE5||IE4){IEold=true;}
	IE5=(uagent.indexOf('msie 5.0') != -1)
		
}



function ReplaceX(rStr,findStr,replaceStr)
{
		for (var i = 0; i < rStr.length; i++) {
			rStr = rStr.replace(findStr,replaceStr)
		}
	return rStr;
}




// say added

function StringToAscii(str)
{
	var result, x;
	StringToAscii = "";
	if (str.lenght==0)  return;
	if  (str.lenght==1) {
		result = Asc(Mid(str, 1, 1));
		StringToAscii = Left("000", 3-CStr(result).lenght) & CStr(result);
		return;
	}
	result = "";
	for (x=1 ; x <=str.lenght ; x++){
		result = result & StringToAscii(Mid(str, x, 1));
	}
	StringToAscii = result;

}

/*Function AsciiToString(str)
	Dim result, x
	AsciiToString = ""
	If Len(str)<3 Then Exit Function
	If Len(str)=3 Then
		AsciiToString = Chr(CInt(str))
		Exit Function
	End If
	result = ""
	For x=1 To Len(str) Step 3
		result = result & AsciiToString(Mid(str, x, 3))
	Next
	AsciiToString = result
End Function

'usage
Dim myString, strASCII
myString = "hello world"
strASCII = StringToAscii(myString)
Response.Write("original string: " & myString & "<br />")
Response.Write("ASCII: " & strASCII & "<br />")
Response.Write("back to string: " & AsciiToString(strASCII) & "<br />")

*/

function trimStr(str) {
  while((str.length>0)&&(str.charAt(str.length-1)==" "))

    str=str.substring(0,str.length-1);

  while((str.length>0)&&(str.charAt(0)==" "))

    str=str.substring(1,str.length-1);

	return str;

}			

function Mid(str, start, len)
{
// Make sure start and len are within proper bounds
    if (start < 0 || len < 0) return "";
    var iEnd, iLen = String(str).length;
    if (start + len > iLen)
          iEnd = iLen;
    else
          iEnd = start + len;
    return String(str).substring(start,iEnd);
}


function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}
// left and right functions in java

// --------------------  start functions for Numbers
function CurrencyFormatted(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }	
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
	// end of function CurrencyFormatted()
	//for test CurrencyFormatted(1000000.12)

}


function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';   // -- [/] or [.] for Currency for ltr or rtl languges
  //x2 = x.length > 1 ? '/' + x[1] : '';

	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}

	return x1 + x2;
	// try to print to see the result
	//document.write(addCommas('852536412.25'));

}



//----------------------------------- addSeparatorsNF  -----------------------------------
/*
Arguments for addSeparatorsNF
To use addSeparatorsNF, you need to pass it the following arguments: 
nStr: The number to be formatted, as a string or number. No validation is done, so don't input a formatted number. 
		If inD is something other than a period, then nStr must be passed in as a string. 
inD: The decimal character for the input, such as '.' for the number 100.2 
outD: The decimal character for the output, such as ',' for the number 100,2 
sep: The separator character for the output, such as ',' for the number 1,000.2 

Examples
addSeparatorsNF(43211234.56, '.', '.', ',')
43,211,234.56
*/
function addSeparatorsNF(nStr, inD, outD, sep)
{
	nStr += '';
	var dpos = nStr.indexOf(inD);
	var nStrEnd = '';
	if (dpos != -1) {
		nStrEnd = outD + nStr.substring(dpos + 1, nStr.length);
		nStr = nStr.substring(0, dpos);
	}
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(nStr)) {
		nStr = nStr.replace(rgx, '$1' + sep + '$2');
	}
	return nStr + nStrEnd;
	//document.write(addSeparatorsNF(43211234.56, '.', '.', ','));
	// 43,211,234.56
}

// --------------------  start functions for Numbers
// ---- end say added functions ----------------------------------------------




function GetScreenResolution(obj)
{
    var w = obj.body.clientWidth; 
    var h = obj.body.clientWidth; 
    return(w,h)
}

function setFocus(form)
	{
		form.focus();
	}

function openHelp()
	{
		window.open('help.htm', 'help', 'toolbar=no,width=550,height=480,resizable=1');
	}

function BlinkTxt() 
{
    if(document.getElementById && document.all){
        obj = document.getElementsByTagName("blink");
        for (var i=0; i<obj.length; i++)
        if (obj[i].style.visibility=="hidden") {
        obj[i].style.visibility="visible";
    }
    else {
        obj[i].style.visibility="hidden";
    }
    setTimeout('BlinkTxt()',600);
    }
}

	var SERVER_CONTROLLER = "sys/control.asp";
	
	function executeRequest(params) {

		var head = document.getElementsByTagName('head').item(0);
		
		script = document.createElement('script');
		
		parameters = new String(params).split(',');
		
		script.src = SERVER_CONTROLLER + '?rnd=' + Math.random();
		for (var i = 0; i < parameters.length; i++) {
			script.src += "&" + parameters[i];
		}

		script.type = 'text/javascript';
		script.defer = true;
		//window.open (script.src)
		void(head.appendChild(script));
		
	} // > function executeRequest(params)
	

	var SERVER_CONTROLLER2 = "sys/errorcontrol.asp";
	
	function executeRequest2(params) {

		var head = document.getElementsByTagName('head').item(0);
		
		script = document.createElement('script');
		
		parameters = new String(params).split(',');
		
		script.src = SERVER_CONTROLLER2 + '?rnd=' + Math.random();
		for (var i = 0; i < parameters.length; i++) {
			script.src += "&" + parameters[i];
		}

		script.type = 'text/javascript';
		script.defer = true;
		
		void(head.appendChild(script));

	} // > function executeRequest2(params)

	
	/**
	 *
	 *
	 */
	function update(frame, id, html) {
		
		var doc = eval(frame + '.document');
		
		if (doc.layers) {
			var l = doc[id];
			l.document.open();
			l.document.write(html);
			l.document.close();
		} else if (doc.all && doc.all[id]) {
			doc.all[id].innerHTML = html;
		} else if (doc.createRange) {
			var l = doc.getElementById(id);
			var r = doc.createRange();
			while (l.hasChildNodes()) {
				l.removeChild(l.lastChild);
			}
			r.setStartAfter(l);
			var docFrag = r.createContextualFragment(html);
			l.appendChild(docFrag);
		}
		
	} // > function update(id, html)
	
	function updateMessages(id, html) {
		update('self', id, html);
	}

function DMSToDD(DMS,Type){

	var result
	var Error

    var ResultDeg = DMS.substring(0,2);
    var ResultMin = DMS.substring(3,5);
    var ResultSec = DMS.substring(6,DMS.length);

    // Assume the value to be zero if the user does not enter value
    if (ResultDeg==null)
      ResultDeg=0;
    if (ResultMin==null) {
      ResultMin=0;
    }
    if (ResultSec==null) {
      ResultSec=0;
    }

    // Check if any error occurred
/*    if (isNaN(ResultDeg) || isNaN(ResultMin) || isNaN(ResultSec)) {
      alert("Latitude and Longitude must be numeric");
      Error = 1
    }
     if (ResultDeg != Math.round(ResultDeg) || ResultMin != Math.round(ResultMin) ) {
      alert("ERROR");
      Error = 1
    }
	if (Type = 'Lat'){
		     if (ResultDeg < -90 || ResultDeg > 90 || ResultMin < -60 || ResultMin > 60  || ResultSec < -60 || ResultSec > 60 ) {
	      alert("ERROR");
	      Error = 1
	    }
	}		

	if (Type = 'Lon'){
		     if (ResultDeg < -180 || ResultDeg > 180 || ResultMin < -60 || ResultMin > 60  || ResultSec < -60 || ResultSec > 60 ) {
	      alert("ERROR");
	      Error = 1
	    }
	}		
*/		
	if (Error != 1){
		    // Change to absolute value
		    ResultDeg = Math.abs(ResultDeg);
		    ResultMin = Math.abs(ResultMin);
		    ResultSec = Math.abs(ResultSec);
		
		
		
		    // Convert to Decimal Degrees Representation
		    var lat = ResultDeg + (ResultMin/60) + (ResultSec / 60 / 60);
		      lat = (Math.round(lat*1000000000000000)/1000000000000000);		
		      result = lat 
		      return(result)	
	}


}


function DDToDMS(DD,Type){
//  Typa  for define Latitude Or Longitude
	var result;
	var Error;
    if (DD==null)
		    var DD=0;

    // Check if any error occurred
    if (isNaN(DD))
    	 {
    		  alert("Latitude and Longitude must be numeric");
    		  Error = 1;
    	 } 
     else {
     
			 if (Type =='Lat') {
		    			if (DD < -90 || DD > 90){
				            alert("ERROR");
				            Error = 1;
						
				        }
				    }
			 if (Type =='Lon') {
		    			if (DD < -180 || DD > 180){
				            alert("ERROR");
				            Error = 1;
	
				        }
			    }
		if (Error != 1){
		      // Change to absolute value
		      DD = Math.abs(DD);
		
		      // Convert to Degree Minutes Seconds Representation
		      ResultDeg = Math.floor(DD);
		      ResultMin = Math.floor((DD-ResultDeg)*60);
		      ResultSec =  (Math.round((((DD - ResultDeg) - (ResultMin/60)) * 60 * 60) * 100) / 100 ) ;
			  result = ResultDeg +  '*' + ResultMin + "'" + ResultSec + '"'
				return(result)
		//	  LonDMSFull = String(LatDeg) + string(LatMin) + string(LatSec) ;
		}

    }

}