function getDriverPlatform(desc) {
	if (desc.toLowerCase().indexOf("astro") != -1) 			{ return "Astro"; }
	else if (desc.toLowerCase().indexOf("destination") != -1) 	{ return "Destination"; }
	else if (desc.toLowerCase().indexOf("portable") != -1) 		{ return "Portable"; }
	else if (desc.toLowerCase().indexOf("solo") != -1) 		{ return "Portable"; }
	else if (desc.toLowerCase().indexOf("profile") != -1) 		{ return "Profile"; }
	else if (desc.toLowerCase().indexOf("server") != -1) 		{ return "Server"; }
	else if (desc.toLowerCase().indexOf("alr") != -1) 		{ return "Server"; }
	else								{ return "Desktop"; }
}

function getDriverSystem(platform,desc) {
	var d = desc.toUpperCase();
	
	if (platform == "Astro") {
		return "Not+Astro+Specific";
	}
	else if (platform == "Destination") {
		return "Not+Destination+Specific";
	}
	else if (platform == "Portable") {
		if (d.indexOf("9500") != -1) 			{ return "Solo+9500"; }
		else if (d.indexOf("VE") != -1)			{ return "Solo+9300VE"; }
		else if (d.indexOf("E PRO") != -1)		{ return "Solo+9300 E Pro"; }
		else if (d.indexOf("9300") != -1) 		{ return "Solo+9300"; }
		else if (d.indexOf("9150") != -1) 		{ return "Solo+9150"; }
		else if (d.indexOf("9100") != -1) 		{ return "Solo+9100"; }
		else if (d.indexOf("5300") != -1) 		{ return "Solo+5300"; }
		else if (d.indexOf("5150") != -1) 		{ return "Solo+5150"; }
		else if (d.indexOf("5100") != -1) 		{ return "Solo+5100"; }
		else if (d.indexOf("3450") != -1) 		{ return "Solo+3450"; }
		else if (d.indexOf("3350") != -1) 		{ return "Solo+3350"; }
		else if (d.indexOf("3300") != -1) 		{ return "Solo+3300"; }
		else if (d.indexOf("3150") != -1) 		{ return "Solo+3150"; }
		else if (d.indexOf("3100") != -1) 		{ return "Solo+3100"; }
		else if (d.indexOf("2550") != -1) 		{ return "Solo+2550"; }
		else if (d.indexOf("2500") != -1) 		{ return "Solo+2500"; }
		else if (d.indexOf("2300") != -1) 		{ return "Solo+2300"; }
		else if (d.indexOf("2200") != -1) 		{ return "Solo+2200"; }
		else if (d.indexOf("2150") != -1) 		{ return "Solo+2150"; }
		else if (d.indexOf("2100") != -1) 		{ return "Solo+2100"; }
		else if (d.indexOf("1200") != -1) 		{ return "Solo+1200"; }
		else if (d.indexOf("1150") != -1) 		{ return "Solo+1150"; }
		else if (d.indexOf("1100") != -1) 		{ return "Solo+1100"; }
		else if (d.indexOf("SOLO") != -1) 		{ return "Solo+(Original)"; }
		else if (d.indexOf("NOMAD") != -1) 		{ return "Nomad"; }
		else if (d.indexOf("LIBERTY") != -1) 		{ return "Liberty"; }
		else if (d.indexOf("486") != -1) 		{ return "Handbook+486"; }
		else if (d.indexOf("286") != -1) 		{ return "Handbook+286"; }
		else if (d.indexOf("COLORBOOK 2") != -1) 	{ return "Colorbook+2"; }
		else if (d.indexOf("COLORBOOK") != -1) 		{ return "Colorbook"; }
		else return "undefined";
	}
	else if (platform == "Profile") {
		if (d.indexOf("4") != -1) 			{ return "Profile+400mhz"; }
		else if (d.indexOf("3") != -1) 			{ return "Profile+3"; }
		else if (d.indexOf("2") != -1) 			{ return "Profile+2"; }
		else return "undefined";
	}
	else if (platform == "Server") {
		if (d.indexOf("9000") != -1) 			{ return "NS-9000"; }
		else if (d.indexOf("8000") != -1) 		{ return "NS-8000"; }
		else if (d.indexOf("7000") != -1) 		{ return "NS-7000"; }
		else if (d.indexOf("400") != -1) 		{ return "GS-400 NAS"; }
		else if (d.indexOf("LEGACY") != -1) 		{ return "ALR+Legacy"; }
		else if (d.indexOf("8300R") != -1) 		{ return "ALR+8300R"; }
		else if (d.indexOf("8300") != -1) 		{ return "ALR+8300"; }
		else if (d.indexOf("8200R") != -1) 		{ return "ALR+8200R"; }
		else if (d.indexOf("8200") != -1) 		{ return "ALR+8200"; }
		else if (d.indexOf("7300") != -1) 		{ return "ALR+7300"; }
		else if (d.indexOf("7200") != -1) 		{ return "ALR+7200"; }
		else if (d.indexOf("935") != -1) 		{ return "935+Series"; }
		else if (d.indexOf("930") != -1) 		{ return "930+Series"; }
		else if (d.indexOf("9250R") != -1) 		{ return "9250R"; }
		else if (d.indexOf("9200R") != -1) 		{ return "9200R"; }
		else if (d.indexOf("9200") != -1) 		{ return "9200"; }
		else if (d.indexOf("910") != -1) 		{ return "910+Series"; }
		else if (d.indexOf("8450R") != -1) 		{ return "8450R"; }
		else if (d.indexOf("8400R") != -1) 		{ return "8400R"; }
		else if (d.indexOf("8400") != -1) 		{ return "8400"; }
		else if (d.indexOf("7450R") != -1) 		{ return "7450R"; }
		else if (d.indexOf("7400R") != -1) 		{ return "7400R"; }
		else if (d.indexOf("7400") != -1) 		{ return "7400"; }
		else if (d.indexOf("7250R") != -1) 		{ return "7250R"; }
		else if (d.indexOf("7210") != -1) 		{ return "7210"; }
		else if (d.indexOf("6400") != -1) 		{ return "6400"; }
		else return "undefined";
	}
	else {
		return "Not+Desktop+Specific";
	}
}

function getDriverOS(agent) {
	var a = agent.toUpperCase();

	if (a.indexOf("WIN") != -1) {
		if (a.indexOf("NT 5.1") != -1) 			{ return "100"; }
		else if (a.indexOf("ME") != -1) 		{ return "150"; }
		else if (a.indexOf("NT 5.0") != -1) 		{ return "160"; }
		else if (a.indexOf("SE") != -1) 		{ return "170"; }
		else if (a.indexOf("98") != -1) 		{ return "180"; }
		else if (a.indexOf("NT") != -1) 		{ return "190"; }
		else if (a.indexOf("95") != -1) 		{ return "200"; }
		else if (a.indexOf("3.1") != -1) 		{ return "210"; }
		else { return "undefined"; }
	}
	else { return "undefined"; }
}