
var config_temp = "" ;
var config_type = "" ;
var config_sys = "";
$(document).ready(function() 
{ 
	//if ($.browser.webkit) { 
		$('input').css('marginTop', 0); 
		$('input').css('marginBottom',0);
		$('select').css('marginTop',0) ;
		$('select').css('marginBottom',0) ;
	//} 
	$('#config-tabs').tabs() ;
	$('#txtConfigServer').focus() ;
	$('#btnConfigUpdateDatabase').button().bind('click',updateDatabase) ;
	$('#btnConfigSave').button().bind('click',saveConfig) ;
	$('#btnConfigTest').button().bind('click',testConfig) ;
	$('#btnConfigCreate').button().bind('click',createConfig) ;
	$('#btnConfigTestSun').button().bind('click',testConfigSun) ;
	$('#btnConfigCreateSun').button().bind('click',createConfigSun) ;
	$('#btnConfigTestNotif').button().bind('click',testConfigNotif) ;
	$('#btnConfigCreateNotif').button().bind('click',createConfigNotif) ;
	$('#btnConfigTestRms').button().bind('click',testConfigRms) ;
	$('#btnConfigCreateRms').button().bind('click',createConfigRms) ;
	$('#txtConfigDbPort').keypress(function() { numericInput(0,'',0,0) ; })
	$('#txtConfigDbPortSun').keypress(function() { numericInput(0,'',0,0) ; })
		
}) ;

function updateDatabase() {
	config_type = "update_database" ;
	
	if (config_temp == "") {
		var data = { "type": "g" } ;
		var url = "admin.pzx?&d=" + new Date().getTime() ;
		callServer(url,"json",data,onConfigResponse,null) ;
	} else {
		if (validateConfig()) {
			var data = { "type": "UDPATE_DATABASE", "server": $('#txtConfigServer').val(),
				"dbname": $('#txtConfigDbName').val(), "dbuser": $('#txtConfigDbUser').val(), 
				"dbpwd": strToHex(xxtea_encrypt($('#txtConfigDbPwd').val(),config_temp)) ,
				"dbport": $('#txtConfigDbPort').val(), "dbtype": $('#cobConfigDbType').val() } ; 
			var url = "admin.pzx?d=" + new Date().getTime() ;

			clearConfig() ;
			config_temp = "" ;
			config_type = "" ;
            config_sys = "";
			callServer(url,"text",data,onConfigTestResponse,null) ;
		}
	}
}

function saveConfig() {
	config_type = "u" ;
	if (config_temp == "") {
		var data = { "type": "g" } ;
		var url = "admin.pzx?&d=" + new Date().getTime() ;
		callServer(url,"json",data,onConfigResponse,null) ;
	} else {
		if (validateConfigAll()) {
			var data = { "type": "u", 
                                    "server": $('#txtConfigServer').val(),
                                    "dbname": $('#txtConfigDbName').val(), 
                                    "dbuser": $('#txtConfigDbUser').val(), 
                                    "dbpwd": strToHex(xxtea_encrypt($('#txtConfigDbPwd').val(),config_temp)) ,
                                    "dbport": $('#txtConfigPort').val(), 
                                    "dbtype": $('#cobConfigDbType').val(), 
                                    "serversun": $('#txtConfigServerSun').val(),
                                    "dbnamesun": $('#txtConfigDbNameSun').val(), 
                                    "dbusersun": $('#txtConfigDbUserSun').val(), 
                                    "dbpwdsun": strToHex(xxtea_encrypt($('#txtConfigDbPwdSun').val(),config_temp)) ,
                                    "dbportsun": $('#txtConfigPortSun').val(), 
                                    "businessunitsun": $('#txtConfigDbBUSun').val(), 
									"dbtypesun": $('#cobConfigDbTypeSun').val() , 
                                    "dbtypenotif": $('#cobConfigDbTypeNotif').val() ,
                                    "servernotif": $('#txtConfigServerNotif').val(),
                                    "dbnamenotif": $('#txtConfigDbNameNotif').val(), 
                                    "dbusernotif": $('#txtConfigDbUserNotif').val(), 
                                    "dbpwdnotif": strToHex(xxtea_encrypt($('#txtConfigDbPwdNotif').val(),config_temp)) ,
                                    "dbportnotif": $('#txtConfigPortNotif').val(), 
									"dbtypenotif": $('#cobConfigDbTypeNotif').val(),

									"dbtyperms": $('#cobConfigDbTypeRms').val() ,
                                    "serverrms": $('#txtConfigServerRms').val(),
                                    "dbnamerms": $('#txtConfigDbNameRms').val(), 
                                    "dbuserrms": $('#txtConfigDbUserRms').val(), 
                                    "dbpwdrms": strToHex(xxtea_encrypt($('#txtConfigDbPwdRms').val(),config_temp)) ,
                                    "dbportrms": $('#txtConfigPortRms').val(), 
                                    "dbtyperms": $('#cobConfigDbTypeRms').val()
                                } ; 
			var url = "admin.pzx?d=" + new Date().getTime() ;
			
			clearConfig() ;
			config_temp = "" ;
			callServer(url,"json",data,onConfigResponse,null) ;
		}
	}
}
function testConfig() {
	config_type = "q" ;
    config_sys = "sys";
	if (config_temp == "") {
		var data = { "type": "g" } ;
		var url = "admin.pzx?&d=" + new Date().getTime() ;
		callServer(url,"json",data,onConfigResponse,null) ;
	} else {
		if (validateConfig()) {
			var data = { "type": "q", 
                        "systemtype" : "request", 
                        "server": $('#txtConfigServer').val(),
                        "dbname": $('#txtConfigDbName').val(), 
                        "dbuser": $('#txtConfigDbUser').val(), 
                        "dbpwd": strToHex(xxtea_encrypt($('#txtConfigDbPwd').val(),config_temp)) ,
                        "dbport": $('#txtConfigDbPort').val(), 
                        "dbtype": $('#cobConfigDbType').val() } ; 
			var url = "admin.pzx?d=" + new Date().getTime() ;

			clearConfig() ;
			config_temp = "" ;
			config_type = "" ;
			callServer(url,"text",data,onConfigTestResponse,null) ;
		}
	}
}
function createConfig() {
}
function testConfigSun() {
	config_type = "q" ;
    config_sys = "sun";
	if (config_temp == "") {
		var data = { "type": "g" } ;
		var url = "admin.pzx?&d=" + new Date().getTime() ;
		callServer(url,"json",data,onConfigResponse,null) ;
	} else {
		if (validateConfigSun()) {
			var data = { "type": "q", 
                                        "systemtype" : "sun", 
                                        "server": $('#txtConfigServerSun').val(),
                                        "dbname": $('#txtConfigDbNameSun').val(), 
                                        "dbuser": $('#txtConfigDbUserSun').val(), 
                                        "dbpwd": strToHex(xxtea_encrypt($('#txtConfigDbPwdSun').val(),config_temp)) ,
                                        "dbport": $('#txtConfigDbPortSun').val(), 
                                        "dbtype": $('#cobConfigDbTypeSun').val() } ; 
			var url = "admin.pzx?d=" + new Date().getTime() ;

			clearConfig() ;
			config_temp = "" ;
			config_type = "" ;
			callServer(url,"text",data,onConfigTestResponse,null) ;
		}
	}
}
function createConfigSun() {
}
function testConfigNotif() {
	config_type = "q" ;
    config_sys = "notif";
	if (config_temp == "") {
		var data = { "type": "g" } ;
		var url = "admin.pzx?&d=" + new Date().getTime() ;
		callServer(url,"json",data,onConfigResponse,null) ;
	} else {
		if (validateConfigNotif()) {
			var data = { "type": "q", 
                        "systemtype" : "notif", 
                        "server": $('#txtConfigServerNotif').val(),
                        "dbname": $('#txtConfigDbNameNotif').val(), 
                        "dbuser": $('#txtConfigDbUserNotif').val(), 
                        "dbpwd": strToHex(xxtea_encrypt($('#txtConfigDbPwdNotif').val(),config_temp)) ,
                        "dbport": $('#txtConfigDbPortNotif').val(), 
                        "dbtype": $('#cobConfigDbTypeNotif').val() } ; 
			var url = "admin.pzx?d=" + new Date().getTime() ;

			clearConfig() ;
			config_temp = "" ;
			config_type = "" ;
			callServer(url,"text",data,onConfigTestResponse,null) ;
		}
	}
}
function createConfigNotif() {
}
function testConfigRms() {
	config_type = "q" ;
    config_sys = "rms";
	if (config_temp == "") {
	
		var data = { "type": "g" } ;
		var url = "admin.pzx?&d=" + new Date().getTime() ;
		callServer(url,"json",data,onConfigResponse,null) ;
	} else {
		
		if (validateConfigRms()) {
			var data = { "type": "q", 
                        "systemtype" : "rms", 
                        "server": $('#txtConfigServerRms').val(),
                        "dbname": $('#txtConfigDbNameRms').val(), 
                        "dbuser": $('#txtConfigDbUserRms').val(), 
                        "dbpwd": strToHex(xxtea_encrypt($('#txtConfigDbPwdRms').val(),config_temp)) ,
                        "dbport": $('#txtConfigDbPortRms').val(), 
                        "dbtype": $('#cobConfigDbTypeRms').val() } ; 
			var url = "admin.pzx?d=" + new Date().getTime() ;

			clearConfig() ;
			config_temp = "" ;
			config_type = "" ;
			callServer(url,"text",data,onConfigTestResponse,null) ;
		}
	}
}
function createConfigRms() {
}
function clearConfig() {
	$('#config_err_mesg').text("") ;
}
function onConfigResponse(obj,resp) {
	if (resp.status == "0") {
		if (resp.type == "g") {
			config_temp = resp.data ;
			if (config_type == "q"){
                if (config_sys == "sys")
                    testConfig() ;  
                else if (config_sys == "sun")
                    testConfigSun();
                else if (config_sys == "notif")
					testConfigNotif();
				else if (config_sys == "rms")
                	testConfigRms();
            }else if (config_type == "update_database")
				updateDatabase() ;
			else{
				saveConfig() ;
            }
		} else  {
			alert(resp.mesg) ;
			clearConfig() ;
		}
	}
	else 
		alert(resp.mesg) ;
}
function onConfigTestResponse(obj,resp) {
	alert(resp) ;
	//$('#sbg-progress1').hide() ;
}
function validateConfig() {
	$('#config_err_mesg').text('') ;
	if ($('#txtConfigServer').blank())
	{
		$('#config_err_server').show() ;
		$('#txtConfigServer').focus() ;
		$('#config_err_mesg').text("Server name can not be blank.") ;
		return false ;
	}
	else 
		$('#config_err_server').hide() ;
	
	if ($('#txtConfigDbName').blank())
	{
		$('#config_err_name').show() ;
		$('#txtConfigDbName').focus() ;
		$('#config_err_mesg').text("Database name can not be blank.") ;
		return false ;
	}
	else 
		$('#config_err_name').hide() ;
	
	if (!$('#txtConfigDbPort').blank())
	{
		if (!isInt($('#txtConfigDbPort').val())) {
			$('#config_err_port').show() ;
			$('#txtConfigDbPort').focus() ;
			$('#config_err_mesg').text("Invalid Port no. Port no must be integer.") ;
			return false ;
		} else
			$('#config_err_port').hide() ;
	}
	else 
		$('#config_err_port').hide() ;
	
	if ($('#txtConfigDbUser').blank())
	{
		$('#config_err_user').show() ;
		$('#txtConfigDbUser').focus() ;
		$('#config_err_mesg').text("Database login user name can not be blank.") ;
		return false ;
	}
	else 
		$('#config_err_user').hide() ;
	
	if ($('#txtConfigDbPwd').blank())
	{
		$('#config_err_pwd').show() ;
		$('#txtConfigDbPwd').focus() ;
		$('#config_err_mesg').text("Database login password can not be blank.") ;
		return false ;
	}
	else 
		$('#config_err_pwd').hide() ;
		
	return true ;
}
function validateConfigSun() {
	$('#config_err_mesg').text('') ;
	if ($('#txtConfigServerSun').blank())
	{
		$('#config_err_server').show() ;
		$('#txtConfigServerSun').focus() ;
		$('#config_err_mesg').text("SunSystems server name can not be blank.") ;
		return false ;
	}
	else 
		$('#config_err_server').hide() ;
	
	if ($('#txtConfigDbNameSun').blank())
	{
		$('#config_err_name').show() ;
		$('#txtConfigDbNameSun').focus() ;
		$('#config_err_mesg').text("SunSystems database name can not be blank.") ;
		return false ;
	}
	else 
		$('#config_err_name').hide() ;
	
	if (!$('#txtConfigDbPortSun').blank())
	{
		if (!isInt($('#txtConfigDbPortSun').val())) {
			$('#config_err_port').show() ;
			$('#txtConfigDbPortSun').focus() ;
			$('#config_err_mesg').text("Invalid Port no. Port no must be integer.") ;
			return false ;
		} else
			$('#config_err_port').hide() ;
	}
	else 
		$('#config_err_port').hide() ;
	
	if ($('#txtConfigDbUserSun').blank())
	{
		$('#config_err_user').show() ;
		$('#txtConfigDbUserSun').focus() ;
		$('#config_err_mesg').text("SunSystems database login user name can not be blank.") ;
		return false ;
	}
	else 
		$('#config_err_user').hide() ;
	
	if ($('#txtConfigDbPwdSun').blank())
	{
		$('#config_err_pwd').show() ;
		$('#txtConfigDbPwdSun').focus() ;
		$('#config_err_mesg').text("SunSystems database login password can not be blank.") ;
		return false ;
	}
	else 
		$('#config_err_pwd').hide() ;
	
	if ($('#txtConfigDbBUSun').blank())
	{
		$('#config_err_bu').show() ;
		$('#txtConfigDbBUSun').focus() ;
		$('#config_err_mesg').text("SunSystems business unit can not be blank.") ;
		return false ;
	}
	else 
		$('#config_err_bu').hide() ;
		
	return true ;
}

function validateConfigNotif() {
	$('#config_err_mesg').text('') ;
	if ($('#txtConfigServerNotif').blank())
	{
		$('#config_err_server').show() ;
		$('#txtConfigServerNotif').focus() ;
		$('#config_err_mesg').text("Notification Centre server name can not be blank.") ;
		return false ;
	}
	else 
		$('#config_err_server').hide() ;
	
	if ($('#txtConfigDbNameNotif').blank())
	{
		$('#config_err_name').show() ;
		$('#txtConfigDbNameNotif').focus() ;
		$('#config_err_mesg').text("Notification Centre database name can not be blank.") ;
		return false ;
	}
	else 
		$('#config_err_name').hide() ;
	
	if (!$('#txtConfigDbPortNotif').blank())
	{
		if (!isInt($('#txtConfigDbPortNotif').val())) {
			$('#config_err_port').show() ;
			$('#txtConfigDbPortNotif').focus() ;
			$('#config_err_mesg').text("Invalid Port no. Port no must be integer.") ;
			return false ;
		} else
			$('#config_err_port').hide() ;
	}
	else 
		$('#config_err_port').hide() ;
	
	if ($('#txtConfigDbUserNotif').blank())
	{
		$('#config_err_user').show() ;
		$('#txtConfigDbUserNotif').focus() ;
		$('#config_err_mesg').text("Notification Centre database login user name can not be blank.") ;
		return false ;
	}
	else 
		$('#config_err_user').hide() ;
	
	if ($('#txtConfigDbPwdNotif').blank())
	{
		$('#config_err_pwd').show() ;
		$('#txtConfigDbPwdNotif').focus() ;
		$('#config_err_mesg').text("Notification Centre database login password can not be blank.") ;
		return false ;
	}
	else 
		$('#config_err_pwd').hide() ;	
		
	return true ;
}

function validateConfigRms() {
	$('#config_err_mesg').text('') ;
	if ($('#txtConfigServerRms').blank())
	{
		console.log('blank');
		$('#config_err_server').show() ;
		$('#txtConfigServerRms').focus() ;
		$('#config_err_mesg').text("Rms server name can not be blank.") ;
		return false ;
	}
	else 
		$('#config_err_server').hide() ;
	
	if ($('#txtConfigDbNameRms').blank())
	{
		$('#config_err_name').show() ;
		$('#txtConfigDbNameRms').focus() ;
		$('#config_err_mesg').text("Rms database name can not be blank.") ;
		return false ;
	}
	else 
		$('#config_err_name').hide() ;
	
	if (!$('#txtConfigDbPortRms').blank())
	{
		if (!isInt($('#txtConfigDbPortRms').val())) {
			$('#config_err_port').show() ;
			$('#txtConfigDbPortRms').focus() ;
			$('#config_err_mesg').text("Invalid Port no. Port no must be integer.") ;
			return false ;
		} else
			$('#config_err_port').hide() ;
	}
	else 
		$('#config_err_port').hide() ;
	
	if ($('#txtConfigDbUserRms').blank())
	{
		$('#config_err_user').show() ;
		$('#txtConfigDbUserRms').focus() ;
		$('#config_err_mesg').text("Rms database login user name can not be blank.") ;
		return false ;
	}
	else 
		$('#config_err_user').hide() ;
	
	if ($('#txtConfigDbPwdRms').blank())
	{
		$('#config_err_pwd').show() ;
		$('#txtConfigDbPwdRms').focus() ;
		$('#config_err_mesg').text("Rms database login password can not be blank.") ;
		return false ;
	}
	else 
		$('#config_err_pwd').hide() ;	
		
	return true ;
}

function validateConfigAll(){
    if (!validateConfig()){
        return false;
    }
    
    return validateConfigSun();
}

function isInt(x) {
   var y=parseInt(x); 
   if (isNaN(y)) return false; 
   return x==y && x.toString()==y.toString(); 
} 
