﻿// Common Function - non travel

//	===================================================================================================	//
//																										HTTP
//	===================================================================================================	//
var oRequest = null;

function getFile(sURL)
{
	oRequest = new XMLHttpRequest();
	//sURL = "http://www.drewnuttall.com/" + sURL;

	oRequest.open("GET",sURL,false);
	oRequest.setRequestHeader("User-Agent",navigator.userAgent);
	oRequest.onreadystatechange = getChange;
	oRequest.send(null)
}

function getChange()
{
	if(oRequest.readyState == 4)
	{
		if(oRequest.status == 200)
		{
			sResponse = oRequest.responseText;
		}else
		{
			alert("Error executing XMLHttpRequest call!");
		}
	}
}

//	===================================================================================================	//
//																										XML
//	===================================================================================================	//
function getXMLDoc(sXML)
{
	XMLDoc = new ActiveXObject("MICROSOFT.XMLDOM");
	XMLDoc.async = false;
	XMLDoc.loadXML(sXML);
	return XMLDoc;
}

function getXMLData()
{
	var XML = new ActiveXObject("Microsoft.XMLDOM"); 
	XML.async = false;
	XML.load(PATH + file);

	if(XML.selectSingleNode("data") != null)
	{
		if(XML.selectSingleNode("data/" + name) != null)
			{
				node = XML.selectSingleNode("data/" + name);
				return node.text;
			}
		else
			{
				return '';
			}
	}
}

//	===================================================================================================	//
//																										SQL
//	===================================================================================================	//
function getSQLData(sURL,SQL)
{
	var strConnString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+sURL;
	var objConn = new ActiveXObject("ADODB.Connection");
	var objRs = new ActiveXObject("ADODB.Recordset");
	try
	{
		objConn.open (strConnString);
		alert('ok');
	}catch(e)
	{
		alert(e.message);
		return false;
	}
}
//	===================================================================================================	//
//																										System
//	===================================================================================================	//
function getOS() 
{ 
	var wmi = GetObject("winmgmts:{impersonationLevel=Impersonate}\\\\.\\root\\cimv2");
	var query = "Select * From Win32_OperatingSystem";
	e = new Enumerator(wmi.ExecQuery(query));
	var data = e.item();
	var o = {};
	o.windowsSKU = data.OpertingSystemSKU;
	o.serial = data.SerialNumber;
	o.build = data.BuildNumber;
	o.buildType = data.BuildType;
	o.servicePackMajor = data.ServicePackMajorVersion;
	o.servicePackMinor = data.ServicePackMinorVersion;
	o.version = data.Version;
	o.caption = data.Caption;
	o.name = data.Name;
	o.name = o.name.substring(0, o.name.indexOf("|")-1);
	return o;
}

function isProcessRunning(s)
{
	var oWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}\\\\.\\root\\cimv2");
	var query = "Select * from Win32_Process";
	var colProcess = oWMIService.ExecQuery(query);
	var items = new Enumerator(colProcess);
	while (!items.atEnd())
	{
		if(items.item().Name == s)
		{
			return true;
		}
		items.moveNext();
	}
	return false;
}

function openFile(sURL)
{
	var oFS = new ActiveXObject('Scripting.FileSystemObject');
	var oF = oFS.OpenTextFile(sURL,1,0);		
	var a = [];
	while (!oF.AtEndOfStream)
    {
		a.push(oF.ReadLine());
    }
	oF.Close();
	return a;
}

function getTextStream(sURL)
{
	var oFS = new ActiveXObject('Scripting.FileSystemObject');
	var oF = oFS.OpenTextFile(sURL,1,0);		
	var a = [];
	if(oF.AtEndOfStream)
    {
		s = '';
    }else
   {
		s = (oF.ReadAll());
   } 
	oF.Close();
	return a;
}

function saveToFile(sContent,sURL)
{
	var oF = new ActiveXObject('Scripting.FileSystemObject');
	
}

function copyFile(sSrcURL,sDestURL)
{
	var oFSO = new ActiveXObject('Scripting.FileSystemObject');
	oFSO.CopyFile(sSrcURL,sDestURL);
	
}

//	===================================================================================================	//
//																										MISC
//	===================================================================================================	//

function objToHTML(o)
{
	var html1 = '';
	for(var j in o)
	{
		html1 +=  '<div class="prompt" style="padding-left:10px;border:1px solid blue;"> ' + j + '</div>';
		if(typeof o[j] == 'object')
		{
			html1 += '<div style="padding-left:20px;1px solid red;">' + objToHTML(o[j]) + '</div>';
		}else
		{
			html1 +=  '<div style="padding-left:20px;1px solid green;">' + o[j] + '</div>';
		}
	}
	html1 += '</div>';
	return html1
}

function getObjFromXML(nodes)
{
    var aParent = new Array();
    if(nodes.length == 0)
    {
        return aParent;
    }
    
    for(var j = 0; j < nodes.length; j++)
    {
	    var obj = new Object();
	    obj.tag = nodes[j].tagName;
	    obj.values = new Array();
	    var kids = nodes(j).childNodes;
	    for(var k = 0; k < kids.length; k++)
	    {
		    var tag = kids(k).tagName;
		    var oValue  = new Object;

		    if(tag.substr(tag.length - 3,tag.length) == 'Ary')
		    {
			    oValue[tag] = getNodesAsArray(kids(k).childNodes);
		    }else
		    {
			    oValue[tag] = kids(k).text;
		    }
		    obj.values[obj.values.length] = oValue;
	    }
    }
		aParent[aParent.length] = obj;
		//	nest nodes with 'Ary' at the end of the tag name to the parent as array
		function getNodesAsArray(subs)
		{
			var aTemp= new Array();
			//var subs = kids(k).childNodes;
			for(var l = 0; l < subs.length; l++)
			{
				var subTag = subs(l).tagName;
				var oSub = new Object();
				var subs2 = subs[l].childNodes;
				for(var m = 0; m < subs2.length; m++)
				{
					var subTag2 = subs2[m].tagName;
					oSub[subTag2] = subs2[m].text;
				}
				aTemp[l] = oSub;
			}
			return aTemp;
		}
    return aParent;
}

function g(id)
{
	var object = null;
	if( document.layers ) 
	{   
		object = document.layers[id];
	} else if( document.all ) 
	{
		object = document.all[id];
	} else if( document.getElementById ) 
	{
		object = document.getElementById(id);
	}
	return object;
}

function show(id)
{
	g(id).style.display = 'block';
}

function hide(id)
{
	g(id).style.display = 'none';
}
