static MonthArray[] = {"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};

public function replace(in str, in replace, in subject, in str_length, in myChar, in q, out new_str) {
	
	new_str = "";
	
	for (q=1;q<=length(str);q++) {
		
		myChar = substr(str, q, 1); 
		
		if (myChar == replace) {
			new_str = new_str & subject;
		} else {
			new_str = new_str & myChar; 
		}
	}
	return (new_str);
}

public function trim (in str) {
	if (substr(str, 1, 1) == " ") {

		str = trim(substr(str, 2));
	}
	if (substr(str, length(str)) == " ") {
		str = trim(substr(str, 1, length(str)-1));
	}
	return (str);
} 

GUI_load( guiFilePath & "WebSQL Logon.gui");
GUI_load( guiFilePath & "IE_Browser.gui");
GUI_load( guiFilePath & "WebAgent.gui");


public test_db_server				= "P76967";
public web_tools_server				= "P38387";
public test_db_name					= "GT";
public test_db_username				= "GT";
public test_db_password				= "GT";

public websql_main_window_name		= "Main";
public websql_dsql_window_name		= "dsql";
public websql_result_window_name	= "result";
public websql_header_window_name	= "Header";

public url_websql					= "";

if (new_Port != "init" &&
	new_wwwServer != "init") {
	
	url_websql = "http://" & new_wwwServer & ":" & new_Port & "/websql";
} else {
	url_websql = "http://" & web_tools_server & ":" & port & "/websql";
}

#=============================================================================================
# 					Enter tests in tests database
#=============================================================================================
call_close "WEBDBM\Open_Close\WDBM_FKT_01000"();

wait(5);
#=============================================================================================
# 					Prepare insert statement
#=============================================================================================
# Date & Time for Tests timestring
sStartTime = time_str(iStartTime);

split(sStartTime, TimeArray, " ");

for (i=0;i<12;i++) {
	
	if (TimeArray[2] == MonthArray[i]) {
	
		if (i < 10) {			
			Month = "0" + i + 1;
		} else {
			Month = i + 1;
		}
		break;
	}
}

Date = TimeArray[5] & "-" & Month & "-" & TimeArray[3];
Time = TimeArray[4];
TimeString = Date & " " & Time;
# GUI Version
win_activate (browser_window_name);
set_window (browser_window_name);
obj_type ("browser_main_edit_location", url_webdbm);
obj_type ("browser_main_edit_location","<kReturn>");

set_window (main_window, 20);
if (new_interface== "1") {
	web_image_click("1x1.gif", 6, 4);
} else {
	web_image_click("Version Information", 8, 10);
}
set_window (main_window,1);
if (new_interface== "1") {
	web_obj_get_text("Component_1", "#2", "#2", version_major, "", "", 1);
	web_obj_get_text("Component_1", "#2", "#3", version_minor, "", "", 1);
} else {
	web_obj_get_text ("Component", "#2", "#2", version_major, "", "", 1);
	web_obj_get_text ("Component", "#2", "#3", version_minor, "", "", 1);
}

GUI_Version = "";

if (version_major != "") {

	split (trim(version_major), version_major_array, ".");
	split (trim(version_minor), version_minor_array, "-");
	
	version_minor_real = 100 + version_minor_array[1] - 100;
	
	split (version_minor_array[1], version_minor_array, "0");
	
	for (i=1;i<4;i++) {
		
		if (i == 3) {
			if (version_major_array[i] < 10 &&
				version_major_array[i] != "0") {
				
				GUI_Version = GUI_Version & "0" & version_major_array[i];
			} else {
				if (version_major_array[i] == "0") {
					GUI_Version = GUI_Version & "00";
				} else {
					GUI_Version = GUI_Version & version_major_array[i];
				}
			}
		} else {
			GUI_Version = GUI_Version & version_major_array[i] & ".";
		}
	}
	
	if (version_minor_real != "") {
		
		if (version_minor_real < 10) {
			GUI_Version = GUI_Version & ".0" & version_minor_real;
		} else {
			if (version_minor_real == "") {
				GUI_Version = GUI_Version & ".00";
			} else {
				GUI_Version = GUI_Version & "." & version_minor_real;
			}
		}
	} else {

		if (version_minor_real < 10) {
			GUI_Version = GUI_Version & ".0" & version_minor_real;
		} else {
			if (version_minor_real == "") {
				GUI_Version = GUI_Version & ".00";
			} else {
				GUI_Version = GUI_Version & "." & version_minor_real;
			}
		}
	}
} else {
	GUI_Version = "n/a";
}
wait(5);

win_activate (browser_window_name);
set_window (browser_window_name);
obj_type ("browser_main_edit_location", url_websql);
obj_type ("browser_main_edit_location","<kReturn>");

wait(5);

set_window (websql_main_window_name, 8);

if (server == "localhost" &&
	version_inst != "7.4.3") {
	edit_set("wqServer", " ");
} else {
	edit_set("wqServer",server);
}
edit_set("wqDatabase", database);
edit_set("wqUser", "dba");
edit_set("wqPassword", "dba");
web_link_click("Logon");

wait(10);

# Getting database version - KERNELVERSION
Version_Statement = "select VALUE from DBPARAMETERS WHERE DESCRIPTION = 'KERNELVERSION'";

set_window (websql_dsql_window_name, 20);
edit_set("dsqlquerytext", Version_Statement);
web_link_click("Execute");

wait(20);

set_window(websql_result_window_name, 20);
web_obj_get_text("select * from ort","#3","#1", kernel_version,"","",1);

if (trim(kernel_version) != "") {

	split (kernel_version, kernel_version_array, " ");
	split (kernel_version_array[2], kernel_version_array_major, ".");
	split (kernel_version_array[4], kernel_version_array_minor, "-");
	
	minor = 100 + kernel_version_array_minor[1] - 100;
	
	kernel_version = kernel_version_array_major[1] & "." & kernel_version_array_major[2];
	if (kernel_version_array_major[3] < 10 &&
		kernel_version_array_major[3] != "0") {
		kernel_version = kernel_version & ".0" & kernel_version_array_major[3];
	} else {
		
		if (kernel_version_array_major[3] == "0") {
			kernel_version = kernel_version & ".00";
		} else {
			kernel_version = kernel_version & "." & kernel_version_array_major[3];
		}
	}
	
	if (minor != "") {
	
		if (minor < 10) {
			kernel_version = kernel_version & ".0" & minor;
		} else {
			if (minor == "") {
				kernel_version = kernel_version & ".00";
			} else {
				kernel_version = kernel_version & "." & minor;
			}
		}
	} else {
		
		kernel_version = kernel_version & ".00";
	}
} else {
	kernel_version = "n/a";
}

set_window(websql_header_window_name, 20);
web_link_click("Log Off");

wait(5);

win_activate (browser_window_name);
set_window (browser_window_name);
obj_type ("browser_main_edit_location", url_websql);
obj_type ("browser_main_edit_location","<kReturn>");

wait(5);

set_window (websql_main_window_name, 8);

edit_set("wqServer", test_db_server);
edit_set("wqDatabase", test_db_name);
edit_set("wqUser", test_db_username);
edit_set("wqPassword", test_db_password);
web_link_click("Logon");

wait(10);
# RunTime
iRunTime = iEndTime - iStartTime;
iSec = iRunTime%60;
iRunTimeRest = iRunTime - iSec;
iRunTimeRest = iRunTimeRest/60;
iMin = iRunTimeRest%60;
iRunTimeRest = iRunTimeRest - iMin;
iHour = iRunTimeRest/60;

if (iHour < 10) {
	sRunTime = "0" & iHour;
} else {
	sRunTime = iHour;
}
if (iMin < 10) {
	sRunTime = sRunTime & ":0" & iMin;
} else {
	sRunTime = sRunTime & ":" & iMin;
}
if (iSec < 10) {
	sRunTime = sRunTime & ":0" & iSec;
} else {
	sRunTime = sRunTime & ":" & iSec;
}

# Status
if (getvar ("runmode") == "debug") {
	ResultFile = getvar("result") & "\\_t_rep.eve";
} else {
	if (getvar ("runmode") == "verify") {
		ResultFile = getvar("exp") & "\\_t_rep.eve";
	} else {
		ResultFile = getvar("result") & "\\_t_rep.eve";
	}
}
file_open (ResultFile, FO_MODE_READ);

i = 0;
ErrorCount = 0;
while (file_getline (ResultFile, line) == 0) {

	i++;
	if (match (toupper(line), "FAIL")) {
		ErrorArray[ErrorCount] = line;
		ErrorCount++;
	}
}
file_close(ResultFile);

if (ErrorCount == 0) {
	Status = "FINISHED";
} else {
	Status = "ERRORED";
}

if (i == 0) {
	Status = "n/a";
}
# Comment
if (Status == "ERRORED") {

	Comment = "'";
	
	for (i=0;i<ErrorCount;i++) {
	
		newComment = ErrorArray[i];
		
		posStep = index (newComment, "Step:");		
		posComma = index (newComment, ",");
		
		StepString = substr (newComment, posStep + 6, posComma - posStep - 6);

		posDesc = index (newComment, "Description:") + 13;
		posEnd = index (newComment, ">");
		
		DescString = substr (newComment, posDesc, posEnd - posDesc);
		
		newComment = i+1 & ". " & StepString & " - " & DescString & ".";
		
		if (i == ErrorCount - 1) {
			Comment = Comment & replace (newComment, "'", "''", length(newComment), "", 0);
		} else {
			Comment = Comment & replace (newComment, "'", "''", length(newComment), "", 0) & "";
		}
	}
	Comment = Comment & "'";
} else {
	Comment = "null";
}
# OS
static machines_array[] = {"is0025","is0026","ds0116","hs0102","hs0030","us0062","us4010","redhat","suse","P48123","ls3007","ls0049","P52837","P56987","IA64","ld9031"};
static os_array[] = {"AIX564","AIX64","DEC64","HP64","HP64","SUN64","SUN64","LINUX32","LINUX32","WIN32 XP","LINUX64","LINUX32","WIN32 XP","WIN32 XP","WIN 64 XP","LINUX32"};
static array_count = 16;

for (i=0;i<array_count;i++) {
	if (www_server == machines_array[i] ||
		match (new_wwwServer, machines_array[i])) {
		OS = os_array[i];
	}
}

# Server
if (server == "localhost") {	
	for (i=0;i<array_count;i++) {
		if (match (new_wwwServer, machines_array[i]) != 0) {			
			server = machines_array[i];
		}
	}
}

# Hidden
if (getvar ("runmode") == "debug") {
	Test_Mode = "TRUE";
} else {
	Test_Mode = "FALSE";
}
# Current tests count
Count_Statement = "select TESTS_ID.nextval from dual";

set_window (websql_dsql_window_name, 20);
edit_set("dsqlquerytext", Count_Statement);
web_link_click("Execute");

wait(20);

set_window(websql_result_window_name, 20);
web_obj_get_text("select * from ort","#3","#1",text,"","",1);
# Tests ID
ID = trim (text);
#Insert test into tests database
SQL_Statement = "insert into tests values ('" & ID & "', '" & TimeString & "',";
SQL_Statement = SQL_Statement & " '" & GUI_Version & "', 'WEB DBM', '" & QA_Level & "',";
SQL_Statement = SQL_Statement & "'" & TestName & "', '" & server & "', '" & database & "',";
SQL_Statement = SQL_Statement & " '" & kernel_version & "', '" & sRunTime & "', '" & Status & "',";
SQL_Statement = SQL_Statement & " " & Comment & ", '" & OS & "', " & ErrorCount & ", null, " & Test_Mode & ")";

set_window (websql_dsql_window_name, 20);
edit_set("dsqlquerytext", SQL_Statement);
web_link_click("Execute");

wait(20);
#=============================================================================================
# 					Close IE.
#=============================================================================================
set_window (websql_header_window_name, 20);
web_link_click ("Log Off");
win_close (browser_window_name);
#=============================================================================================
# 					Closing all GUI MAPS.
#=============================================================================================
GUI_close_all();
