function 					gup( name )
{
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	
	var regex = new RegExp( regexS );
	
	var results = regex.exec( window.location.href );
	
	if( results == null )
	  return "";
	else
	  return results[1];
}

function field(form_field) {

	if( form_field == null ||    
    	form_field.value == null || 
    	((form_field.type == 'text'  || form_field.type == 'textarea') && 
    	form_field.style.color == "gray") || 
    	(form_field.type == 'checkbox' && ! form_field.checked) ||
        (form_field.type == 'radio' && ! form_field.checked)) {
        return '';
    }
    return form_field.value;
}

function					GetFormValue( formname , id  )
{
	var form =  $( formname );

	for( var i = 0 ; i < form.elements.length ; i++ ) {
		
        if( form.elements[i].id == id ){
        
        	var f = field( form.elements[i] );
        	
        	if( f ){
        		return f;
        	}
        }
    }

    return "" ;
}

function					chklogin( frm )
{
	var 				vemail= GetFormValue( frm , "email" ) ;
	var 				vpass = GetFormValue( frm , "passwd" ) ;
	var 				vrem  = GetFormValue( frm , "remember_login" ) ;
	var 				vred  = "/";
		
	$('login_status').innerHTML = "Logging In ..." ;
	
	new Ajax.Request('sys/login.php', {
	 		method: 'post',
	 			 		
	 		parameters: {email: vemail, pass: vpass , rem: vrem , redirect: vred },
	 		
	 		onSuccess: function( transport ){ 		
	 			
	 			var obj = transport.responseText.evalJSON();	 			 
	 			 			
	 			if( obj.status == 1 ){
	 				window.location = obj.text ;
	 			}else if( obj.status == 5 ){
	 				window.location = obj.text ;	 			
	 			}else{
	 				$('login_status').innerHTML = obj.text ;	 			
	 			}	 					    	
	    	}
    	}   
    ); 	
}

function					AddLookupValue( src , dst )
{	
	var newstr = $F( src ) ;
			
	if( $( dst ).value.length > 0 ){						
		newstr = sprintf( "%s , %s" , $F( dst ) , $F( src ) ) ;			
	}	 	
 
 	$( dst ).value = newstr ;				 
}
 
function					ShowHelp( divname )
{
	if( $( divname ).style.display == 'none' )
		$( divname ).style.display = 'block';	
	else
		$( divname ).style.display = 'none';
}	

function					ShowHide( divname )
{
	if( $( divname ).style.display == 'none' )
		$( divname ).style.display = 'block';	
	else
		$( divname ).style.display = 'none';
}

function 					ShowUtilization( u )
{
	u = trim( u);  
 
	$( "uD" ).style.display = ( u == "uD" ) ? 'block' : 'none' ;
	$( "uM" ).style.display = ( u == "uM" ) ? 'block' : 'none' ;
	$( "uY" ).style.display = ( u == "uY" ) ? 'block' : 'none' ;	
	
	$( "chartD" ).style.display = ( u == "uD" ) ? 'block' : 'none' ;
	$( "chartM" ).style.display = ( u == "uM" ) ? 'block' : 'none' ;
	$( "chartY" ).style.display = ( u == "uY" ) ? 'block' : 'none' ;	
	
	SetOption( "util" , u ) ;
}

function 					ShowCapacities( c )
{
	c = trim(c);  
 
	$( "cD" ).style.display = ( c == "cD" ) ? 'block' : 'none' ;
	$( "cM" ).style.display = ( c == "cM" ) ? 'block' : 'none' ;
	$( "cY" ).style.display = ( c == "cY" ) ? 'block' : 'none' ;	
	
	SetOption( "caps" , c ) ;
}

function 					rtrim ( str, charlist ) {
    // Strip whitespace (or other characters) from the end of a string
    // 
    // +    discuss at: http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_rtrim/
    // +       version: 804.1712
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: Erkekjetter
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: rtrim('    Kevin van Zonneveld    ');
    // *     returns 1: '    Kevin van Zonneveld'

    charlist = !charlist ? ' \s\xA0' : charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '\$1');
    var re = new RegExp('[' + charlist + ']+$', 'g');
    return str.replace(re, '');
}// }}}

function 					trim( str, charlist ) {
    // Strip whitespace (or other characters) from the beginning and end of a string
    // 
    // +    discuss at: http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_trim/
    // +       version: 804.1712
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: mdsjack (http://www.mdsjack.bo.it)
    // +   improved by: Alexander Ermolaev (http://snippets.dzone.com/user/AlexanderErmolaev)
    // +      input by: Erkekjetter
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: DxGx
    // +   improved by: Steven Levithan (http://blog.stevenlevithan.com)
    // *     example 1: trim('    Kevin van Zonneveld    ');
    // *     returns 1: 'Kevin van Zonneveld'
    // *     example 2: trim('Hello World', 'Hdle');
    // *     returns 2: 'o Wor'

    var whitespace;
    
    if(!charlist){
        whitespace = ' \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000';
    } else{
        whitespace = charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '\$1');
    }
  
	for (var i = 0; i < str.length; i++) {
		if (whitespace.indexOf(str.charAt(i)) === -1) {
		str = str.substring(i);
		break;
		}
	}
	for (i = str.length - 1; i >= 0; i--) {
		if (whitespace.indexOf(str.charAt(i)) === -1) {
			str = str.substring(0, i + 1);
			break;
    	}
	}
	return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
}// }}}

function 				strrpos( haystack, needle, offset){
    // Find position of last occurrence of a char in a string
    // 
    // +    discuss at: http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_strrpos/
    // +       version: 804.1712
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: strrpos('Kevin van Zonneveld', 'e');
    // *     returns 1: 16

    var i = haystack.lastIndexOf( needle, offset ); // returns -1
    return i >= 0 ? i : false;
}// }}}

function 				strpos( haystack, needle, offset){
    // Find position of first occurrence of a string
    // 
    // +    discuss at: http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_strpos/
    // +       version: 804.1712
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: strpos('Kevin van Zonneveld', 'e', 5);
    // *     returns 1: 14

    var i = haystack.indexOf( needle, offset ); // returns -1
    return i >= 0 ? i : false;
}// }}}

function 				substr( f_string, f_start, f_length ) {

    // Return part of a string
    // 
    // +    discuss at: http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_substr/
    // +       version: 804.1712
    // +     original by: Martijn Wieringa
    // *         example 1: substr('abcdef', 0, -1);
    // *         returns 1: 'abcde'

    if(f_start < 0) {
        f_start += f_string.length;
    }

    if(f_length == undefined) {
        f_length = f_string.length;
    } else if(f_length < 0){
        f_length += f_string.length;
    } else {
        f_length += f_start;
    }

    if(f_length < f_start) {
        f_length = f_start;
    }

    return f_string.substring(f_start, f_length);
}// }}}


function					zoommap( dir )
{	
	var img = $( 'report_map_map' );
	
	var	dash  	= strpos( img.src , "_" ) ;
	
	var	slash 	= strrpos( img.src , "=" ) ;	
	
	var len 	= ( dash - slash ) -1 ;
	
	var	lvl 	= substr( img.src , slash + 1 , len) ;
	
	lvl = parseInt( lvl ) + parseInt( dir ) ;
	
	if( lvl == 12 ) lvl = 1 ;
	if( lvl == 0  ) lvl = 11 ;	

	var id = gup('id');
		
	img.src = sprintf( "http://res.gasplantdirectory.com/maps.php?img=%d_%d" , lvl , id ) ;	
	
	SetOption( "zoommap" , lvl ) ;
}

function 					setChar( sString , nPosition , nCharCode )
{
	if( typeof sString == "string" && sString.length > nPosition ){
		
		sString = sString.substring( 0, nPosition ) +
		nCharCode +
		sString.substring( nPosition + 1 );		
	}
	
	return sString;
}

function					emailpassword( frm )
{
	var 				vsearch = GetFormValue( frm , "search" ) ;		
	
	$('recover_status').innerHTML = sprintf( "Checking '%s'  ..." , vsearch );
	
	new Ajax.Request('/sys/recover.php', {
	 		method: 'post',
	 			 		
	 		parameters: {search: vsearch },
	 		
	 		onSuccess: function( transport ){ 		
	 			
	 			var obj = transport.responseText.evalJSON();	 			
	 			
	 			$('recover_status').innerHTML = obj.text ;	 			
	    	}
    	}   
    ); 	
}

function					resetpassword( frm )
{
	var 				vreset = GetFormValue( frm , "reset" ) ;		
	
	$('recover_status').innerHTML = sprintf( "Checking '%s'  ..." , vreset );
	
	new Ajax.Request('/sys/reset.php', {
	 		method: 'post',
	 			 		
	 		parameters: {reset: vreset },
	 		
	 		onSuccess: function( transport ){ 		
	 			
	 			var obj = transport.responseText.evalJSON();	 			
	 			
	 			$('recover_status').innerHTML = obj.text ;	 			
	    	}
    	}   
    ); 	
}

function					downloaddata( vlayer )
{	
	new Ajax.Request('/dl.php', {
	 		method: 'post',
	 			 		
	 		parameters: {layer: vlayer },
	 		
	 		onSuccess : function( transport ){ 		
	 			
	 			var obj = transport.responseText.evalJSON();
	 			
	 			document.write( obj.text );	 				 			
	    	}
    	}   
    ); 	
}

function					SendDataComment( form , comment_status )
{		
	new Ajax.Request('sys/datacomment.php' ,
			{	
				method: 'post',
		 		
		 		parameters: $( form ).serialize( true ),
			
		 		onSuccess : function( transport ){
		 			$(comment_status).innerHTML = transport.responseText ;
		 			 		
		 		}
			}
	);		
}

function					SendGasPlantUpdateNotification( form , status )
{		
	new Ajax.Request('sys/ugi.php' ,
	
			{	
				method: 'post',
		 		
		 		parameters: $( form ).serialize( true ),
			
		 		onSuccess : function( transport ){
		 			$(status).innerHTML = transport.responseText ;
		 		}
			}
	);		
}

function					DownloadUtilization( vID )
{
	vui = GetUtilizationTimeInterval( ) ;
	
	new Ajax.Request('/dlu.php', {
	 		method: 'post',
	 			 		
	 		parameters: {ui: vui , id: vID  },
	 		
	 		onSuccess : function( transport ){ 		
	 			
	 			var obj = transport.responseText.evalJSON(); 			
	 			
	 			document.write( obj.text );	 				 			
	    	}
    	}
    );
}

function					GetUtilizationTimeInterval( )
{
	if( $( "cD" ).style.display == 'block' ) return "cD" ;
	if( $( "cM" ).style.display == 'block' ) return "cM" ;
	if( $( "cY" ).style.display == 'block' ) return "cY" ;
	
	return NULL ;
}

function 					SetOption( vprm , vval )
{	
	if( vval == 0 )
		vval = "zero" ; 
	
	new Ajax.Request('/sys/op.php', {
	 		method: 'post',
	 		parameters: {
	 						cmd:"set",
	 						prm:vprm ,
	 						val:vval
	 					},
	 		
 			onSuccess : function( transport ){ 				 		
				return true ; 				 		
    		}
    	}
    );

    return false ;
}

function 					GetOption( vprm , vdef , func )
{	
	new Ajax.Request('/sys/op.php', {
	 		method: 'get',
	 		parameters: {
	 						cmd: "get",
	 						prm: vprm ,
	 						def: vdef
	 					},
	 		
	 		onSuccess : function( transport ){	 		
	    	},
	    	
	    	onComplete: function(transport) {
	    	
    			if( 200 == transport.status ){   			
    				
    				func( transport.responseText );    			    				
    			}
  			}
    	}
    ); 
}

function					openpreferences( )
{
	var url = sprintf( " %s " , window.location ) ; 
		
	SetOption( "preferencesreferrer" , url ) ;

	window.location = "/pref.php" ;	
}

function					clearsearchform( $url )
{
	window.location = "/s.php?clear=1" ;
}

function					setmaintenancemode( rval )
{	
	new Ajax.Request('sys/mm.php' ,
	
		{	
			method: 'post',
	 		
	 		parameters: { val:rval },
	 		
	 		onSuccess : function( transport ){
	 		
	 		}
		}
	);
}


