var LOCATE_REGISTRY = 1;
var LOCATE_FILE_VIA_REGISTRY_FILEVER = 2;
var LOCATE_FILE_VIA_PATH = 3;
var LOCATE_REGISTRY_KEY_PRESENCE = 4;
var LOCATE_REGISTRY_VALUE_PRESENCE = 5;
var LOCATE_FILE_VIA_REGISTRY_PRODVER = 6;
var LOCATE_FILE_VIA_PATH_PRODVER = 7; 

var MSGRVER = "";
var YMEVER = "";
var IETOOLBARVER = "";
var TICKERVER = "";
var WIDGETSVER = "";
var DESKTOPSEARCHVER = "";
var CENTRALVER = "";
var MSGRBETAVER = "";

var UPTODATE = '<span class="uptodate">Latest version installed</span>';
var UPDATEAVAILABLE = '<span class="updateavailable">Update available</span>';
var NOSTATUS = '<span class="nostatus"></span>';

//	var UPTODATEBGCOLOR = "E4F0A8";
var UPTODATEBGCOLOR = "f1f1f1";
var UPDATEAVAILABLEBGCOLOR = "f5cf71";

var NEWVER = '<div class="newversion">New Version: </div><div class="newvernum">';
var CURRVER = '</div><div class="currentversion">Version on this computer: </div><div class="currvernum">';

var detVer1, detVer2, destFld;
	
	function setStatusUpToDate(nNode) {
		nNode.innerHTML = UPTODATE;
		nNode.parentNode.style.backgroundColor = UPTODATEBGCOLOR;
	}
	
	function setStatusUpdateAvailable(nNode){
		nNode.innerHTML = UPDATEAVAILABLE;
		nNode.parentNode.style.backgroundColor = UPDATEAVAILABLEBGCOLOR;
	}

function version_compare(v1, v2) {
	/*
	0  if equal
	-1 if first lower than second
	+1 if second lower than first
	*/	
	
	if ( (v1.indexOf(' ') == -1) && (v1.indexOf('.') == -1) && (v1.indexOf(',') == -1) ) {
		return( (v1==v2)?0:(v1<v2)?-1:1);
	}
	else {
		var d = /[ ,.]/;
		var av1 = ('string'==typeof(v1))?(v1).split(d):0;
		var av2 = ('string'==typeof(v2))?(v2).split(d):0;
		return version_compare_h(av1, av2, 0);
	}
}

function version_compare_h(av1, av2, x){
	var d = (av1[x]||0) - (av2[x]||0);
	if(x<(av1.length>av2.length?av1.length:av2.length)){
		if(!d) return version_compare_h(av1,av2,x+1);
	}
	return d==0?0:d<0?-1:1;
}	
	
	function displayDetails(srcFld) {
		var detailHTML;
		var appVer;
		var detailDestFld = document.getElementById('fpopuPpSvcYmob').childNodes[1].childNodes[1];


		
		if (detailDestFld && (detailDestFld.style.display != "none") ) {
			var relStateNode = detailDestFld.previousSibling.childNodes[2];
			if (relStateNode.className == "relstatenew") { // Hide the "NEW" status if version info is present...
				relStateNode.style.display = "none";
			}
			if (relStateNode.className == "relstatebeta") { // Hide the version info if relState is BETA..
				detailDestFld.style.display = "none";
			}
		}
	}		
	


	function getMsgrVer2() {
		destFld = document.getElementById("Messenger");
	//	MSGRVER = YGetInfo2.pv2("{29F46F81-4B2A-11D1-9BCE-00A0C96ED13A}", "ypager.exe");
		MSGRVER = YGetInfo2.ApplicationGetInfo(LOCATE_FILE_VIA_REGISTRY_FILEVER,'HKCR\\CLSID\\{E5D12C4E-7B4F-11D3-B5C9-0050045C3C96}\\LocalServer32\\\\@');
		if (MSGRVER) {
			if (version_compare(MSGRVER,MESSENGER_WITH_VOICE2) > -1) {
				setStatusUpToDate(destFld);
			}
			else {
				setStatusUpdateAvailable(destFld);
			}
		}
	}
	
	function InsertObjectTag(clsid, id)
	{
		var body = document.body;
		var objectTag = "<object id=\"" + id + "\" type=\"application/x-oleobject\" " + "classid=\"CLSID:" + clsid + "\" " + "width=0 height=0>" + id + "</object>";

		body.insertAdjacentHTML("afterBegin", objectTag);
	}
	
	function IsControlInstalled1() {
		try {
			var verObj = new ActiveXObject("YVerInfo.GetInfo");
			
			if (verObj && ( typeof verObj.ComponentVersion != "undefined" )) {
				InsertObjectTag("D5184A39-CBDF-4A4F-AC1A-7A45A852C883", "YGetInfo");
				return true;
			}
		}
		catch(e) { }
		return false;
	}
	
	function IsControlInstalled2() {
		try { 
			var verObj2 = new ActiveXObject("YVerInfo.GetInfo2"); 

			if (verObj2 && ( typeof verObj2.ComponentVersion != "undefined" )) {
				InsertObjectTag("B345F37E-6763-433b-BC53-9B526A9B7B8B","YGetInfo2");
				return true;
			}
		}
		catch(e) { }
		return false;
	}
	
	function IsControlInstalled() {
			if ( IsControlInstalled2() ) {					
				try {
					getMsgrVer2();
					getMsgrBetaVer2();
					getYMEVer2();
					getIEToolbarVer2();
					getDTSrchVer2();
					getTickerVer2();
					getWidgetEngineVer2();
					getCentralVer2();
				}
				catch(e) {
				}
			} else if (IsControlInstalled1() ) {
				try {
					getMsgrVer();
					getMsgrBetaVer();
					getYMEVer();
					getIEToolbarVer();
					getDTSrchVer();
					getTickerVer();
					getKonfabltrVer();
					getCentralVer();
				}
				catch(e) {}
			}
			else { return null; }
	}
