var gAuthToken     = "omn-h | *.omn.org | urn:kid:omn:";
var gAuthSignature = "yQXM+oxHu1bA+OYor7cVaA0lPWIr2vYSsmReLJl3DJbpeB0WHeYTuhczrMIEONb1BKbpBPty2hD2EphWRNKEdcwzrV3NM4YyIdoLtWtzuzjC6Azp4lPQG9upn77MLEeY45xhUNmxH7C7RyZMEOczEoSTHBerTcT8SJF20oiSAgs=";
var gMoid;
var gTstyle = 'class=dialog,width=1024,height=740,position=1,resize=1,name=main';
var gTemplate = 'cache:kdmx_mainFrame.html';

var loaderTstyle = 'class=dialog,width=200,height=200,position=1,resize=1,visible=0,name=loader';
var loaderTemplate = 'cache:kdmx_load.html';

var urlInstallIndexPage = "http://kdx.omn.org/securedelivery/";
var defaultDMS = "dms-h.omn.org";
var defaultModel = "190b86e2-b87e-a5a8-f082-4d43abc0f630";

var omn_msi_url = "http://guide-h.omn.org/clientsetup/msisetup/";

// DO NOT CHANGE THE SERVER NAME FOR OTHER CONFIGURATION
// IT WILL TAKE PLACE AUTOMATICALLY WITH THE HELP OF build.xml
var gServer = "http://guide-h.omn.org";
var debugMode = false;
var gServerPopupURL = gServer + "/clientsetup/";
var urlDrmChecker = gServer + "/guide/isdrm.jsp?session=none&preferences=0,1,2,3,4&";
var helperURL = gServer + "/clientsetup/helper.html"
var gJumpPageURL = gServer + "/clientsetup/jump.html";

//---------------------- companies ---------------------------------------//
var affiliateCompanies =
{
   KQED     : "http://guide-h.omn.org/clientsetup/kqed/settings.xml",
   WGBH     : "http://guide-h.omn.org/clientsetup/wgbh/settings.xml",
   WGBH2    : "http://guide-h.omn.org/clientsetup/wgbh2/settings.xml",
   CQUEST   : "http://guide-h.omn.org/clientsetup/cinequest/settings.xml" ,
   WNET     : "http://guide-h.omn.org/clientsetup/wnet/settings.xml"
   /*add new company here*/
};

var popupURLs =
{
	FREE_NOT_INSTALLED:     gServerPopupURL + "popups/popupA.html",
	PAY_NOT_INSTALLED:	    gServerPopupURL + "popups/popupB.html",
	INSTALL:			    gServerPopupURL + "popups/popupE.html",
	PAY:				    gServerPopupURL + "popups/popupC.html",
	MAC_DRM:			    gServerPopupURL + "popups/popupF.html?close",
	UNSUPPORTED_BROWSER:    gServerPopupURL + "popups/popupG.html?close",
	UNSUPPORTED_VERSION:    gServerPopupURL + "popups/popupH.html?close"
}

//---------------------- contstants --------------------------------------//

var TESTMODE_OMN = "omn";
var TESTMODE_DEMO = "demo";
var TESTMODE_STAGE = "omn_stage";

//-------------------------- gDMSMap --------------------------------------//

var gDMSMap =
{
//    omn         : "dms-h.omn.org",
    omn			: "web-h.omn.org",
    dev         : "web-dev.corp.kontiki.com",
    dl          : "web-dl.corp.kontiki.com",
    kontiki     : "web-g.kontiki.com",
    stage       : "web-stage.kontiki.com",
    winqa       : "web-wqa.kontiki.com",
    ey          : "web-ey.kontiki.com",
    verizontest : "sacs1lrcdd01.ITUTL1.ITCENT.EBIZ.VERIZON.COM"
};

//------------------------ variables --------------------------------------//

var isDrmContent = null;
var isPPVContent = null;
var function_OnPPVContent = null;
var affiliateCompany = null;

var installationMoid = null;
var installationCompany = null;
var installationMode = null;

var popupWindow = null;

// --------------------

var omnp = navigator.mimeTypes["application/omn-plugin"];
if(omnp && isSupportedMacOS()){
	document.write('<embed id="omnplugin_mac" type="application/omn-plugin" width="0" height="0"></embed>');
	if(navigator.plugins){
		navigator.plugins.refresh();
	}
}

//-------------------------processMoid-------------------------------------//
function processMoid()
{
    parseHtmlArguments();
    var moid = htmlArgs["moid"];
    var company = htmlArgs["company"];
    var mode = htmlArgs["mode"];

	installationMoid = moid;
	installationCompany = company == null? affiliateCompany : company;
    installationMode = mode == null? "omn" : mode;
	installationMode = installationMode == undefined? "omn" : installationMode;
	installationMode = installationMode == ""? "omn" : installationMode;
	installationMode = installationMode == "null"? "omn" : installationMode;

    if(navigator.plugins){
        navigator.plugins.refresh();
    }

    if(isPopup()){
        if(!isBrowserOK() || (!isWindowsOS() && !isSupportedMacOS())){
            closePopupWindow();
            return;
        }else{
            parseHtmlArguments();
            processInstallation();
        }
    }else{
        if(!isBrowserOK()){
            try{
                document.location.href = popupURLs["UNSUPPORTED_BROWSER"];
            } catch(e) {
            }
            return;
        }else{
			installationMoid = moid;
			installationCompany = company == null? affiliateCompany : company;
			installationMode = mode == null? "omn" : mode;
			installationMode = installationMode == undefined? "omn" : installationMode;
			installationMode = installationMode == ""? "omn" : installationMode;
			installationMode = installationMode == "null"? "omn" : installationMode;

            if(isMacPlatform() && isSafariBrowser() && getSafariVersion(navigator.appVersion) < 416) {
                document.location.href = helperURL + "?" + encodeURIComponent(installationMoid);
            } else {
                startDrmValidator();
            }
        }
    }
}

//-----------------------installOmnClient----------------------------------//
function installOmnClient(moid,company,mode)
{
    if(!isPopup()) {
        var x = 0, y = 0, width = 500, height = 500;
        if (screen){
            x = (screen.availWidth - width)/2;
            y = (screen.availHeight - height)/2;
        }
        var winAttributes = "width=" +width+ ",height=" +height
                       + ",screenX=" +x+ ",screenY=" +y+ ",top=" +y+ ",left=" +x
                       + "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizeable=yes";
		
		//alert(affiliateCompany);
		
		company = (company != null && company != undefined) ? ("&company="+company): "";
		
		//alert(company);
		
		company = (company != "") ? company:((affiliateCompany != null && affiliateCompany != undefined) ? ("&company="+affiliateCompany): "");
		
		//alert(company);
		
        var url =   gJumpPageURL + "?moid=" + moid + company + (mode != null && mode != undefined ? ("&mode=" + mode) : "&mode=omn");
        var wnd = window.open(url, "jump", winAttributes);
        wnd.focus();
    } else {
        processMoid();
    }
}

function processInstallation(isInstalled){
	if(isInstalled == undefined){
		if(isPopup()){
			checkClientInstallation(htmlArgs["moid"]);
		}else{
			checkClientInstallation();
		}
		return;
	}

	if(isPopup()){
		processInstallationStep2(isInstalled);
	}else{
		processInstallationStep1(isInstalled);
	}
}

//------------------------processInstallationStep1-----------------------------//

function processInstallationStep1(isInstalled) {
    var popupURL = false;

    if(isWindowsOS()){
        //--------------- Windows-specific part ----------------
        if(!isInstalled){
            if(isPPVContent){
                if(function_OnPPVContent) {
                    function_OnPPVContent();
                }
                popupURL = popupURLs["PAY_NOT_INSTALLED"];
            }else{
                popupURL = popupURLs["FREE_NOT_INSTALLED"];
            }
        }else{
            if(isPPVContent){
                if(function_OnPPVContent) {
                    function_OnPPVContent();
                }
                popupURL = popupURLs["PAY"];
            }
        }
    } else if(isSupportedMacOS()){
        //--------------- Mac-specific part --------------------
        if(!isInstalled){
            if(isPPVContent || isDrmContent){
                popupURL = popupURLs["MAC_DRM"];
            }else{
                popupURL = popupURLs["FREE_NOT_INSTALLED"];
            }
        } else {
            if(isPPVContent || isDrmContent){
                popupURL = popupURLs["MAC_DRM"];
            }
        }
    } else {
        // --------------- None of OS supported -----------------
        popupURL = popupURLs["UNSUPPORTED_VERSION"];
    }

    if(popupURL){
		if(popupURL != popupURLs["UNSUPPORTED_VERSION"] && popupURL != popupURLs["MAC_DRM"] ){
			var company = installationCompany == null ? null : affiliateCompanies[installationCompany];

			var params = "";
			params += "&domain="+(getDms() == null ? defaultDMS : getDms());
			params += (installationMoid==null) ? "" : "&moid="+installationMoid;
			params += "&model="+defaultModel;
			if (debugMode){
			   params += "&alerts="+debugMode;
			}
			params += "&s=kdx";//support version 3.x
			params += (company == null)? "" : "&url="+encodeURI(company);
			params += "&ppv=" + isPPVContent;
			params += "&drm=" + isDrmContent;

			var url = installationMode == null ? "omn" : installationMode;
			url = "?installurl=" + urlInstallIndexPage + url;

			popupURL += url + params;
		}

        try{
            document.location.href = popupURL;
        } catch(e) {
        }
    } else {
		window.setTimeout("closePopupWindow()", 5000);
		if(isIEBrowser() && isWindowsOS()){
			try{
				var apiObj = new ActiveXObject("KDX.SecureApi");
				apiObj.authorize(gAuthToken, gAuthSignature);
				loadMoidIE(apiObj, installationMoid);
			}catch(e){
			}

		}else if(isWindowsOS()){
			loadMoidFirefox(installationMoid);
		}else{
			checkClientInstallation(installationMoid ? installationMoid : "urn:");
		}
    }
}

function loadMoidIE(api, moid){
	if(moid && moid != "" && moid != "null" && moid != undefined){
		api.launchTemplate(loaderTemplate, loaderTstyle, moid, "loader");
	}else{
		api.launchTemplate(loaderTemplate, loaderTstyle, "", "loader");
	}
}

function loadMoidFirefox(moid){
	var token = 'token="' + gAuthToken + '"';
	var signature = 'signature="' + gAuthSignature + '"';

	if(moid && moid != "" && moid != "null" && moid != undefined){
		loaderTstyle += (",moid="+moid);
		moid = 'moid="' + moid + '"';
	}

	var templatestyle = 'templatestyle="' + loaderTstyle + '"';
	var template = 'template="' + loaderTemplate + '"';

	var omnp = navigator.mimeTypes["application/omn-plugin"];
	if(omnp) {
		var eDiv = document.getElementById("divomnplugin");
		eDiv.innerHTML = '<embed id="omnplugin" type="application/omn-plugin" width=10 height=0 ' +
						 token + signature + moid + templatestyle + template + '></embed>';
	}
}

//------------------------reportKhostInstalled2----------------------------//

function processInstallationStep2(isInstalled) {
    if(!isInstalled){
        if(isWindowsOS()){
            var node  = "&servleturl=" + htmlArgs["servleturl"];
            var node2  = "&installurl=" + encodeURIComponent(htmlArgs["installurl"] + "/omn.msi");

            var new_loc = omn_msi_url + "?domain=" + htmlArgs["netmanDomain"] +
                                        "&moid=" + htmlArgs["moid"] +
                                        "&model=" + htmlArgs["netmanMoid"] +
                                        "&alerts=" + htmlArgs["debug"] +
                                        "&url=" + htmlArgs["url"] +
                                        "&s=" + htmlArgs["sparam"] +
                          node + node2;
        } else if(isSupportedMacOS()){
            new_loc = htmlArgs["installurl"];
            sd = new_loc.indexOf("securedelivery/");
            sdl = "securedelivery/".length;
            if(sd) {
                new_loc = new_loc.substring(0, sd + sdl) + "mac/" +
                          new_loc.substring(sd + sdl) + "/omn.dmg";
            }
        }
		if(isSafariBrowser()) {
			var newFrame = document.createElement("iframe");
			document.body.appendChild(newFrame);
			newFrame.src = new_loc;
			window.setTimeout("closePopupWindow()", 10000);
		} else {
			window.setTimeout("closePopupWindow()", 10000);
			window.location.href = new_loc;
		}
    } else {
        if(isIEBrowser() && isWindowsOS()) {
            try {
                var apiObj = new ActiveXObject("KDX.SecureApi");
                apiObj.authorize(gAuthToken, gAuthSignature);
				loadMoidIE(apiObj, gMoid);
            } catch(e) {
            }
        }else if(isWindowsOS()){
			loadMoidFirefox(gMoid);
		}
        setTimeout("closePopupWindow()", 1000);
    }

}

//------------------------closePopupWindow---------------------------------//
function closePopupWindow() {
	try{
        window.close();
	}catch(e){
	}
}

//------------------------------getDms------------------------------------//

function getDms()
{
   var i_urn = (installationMoid==null) ? "" : installationMoid;
   var index1, index2, index3, tempString = "", domain = defaultDMS;
   if (i_urn.indexOf("urn") != -1)
   {
       index1 = (i_urn.indexOf(":") + 1);
       index2 = (i_urn.indexOf(":", index1) + 1);
       index3 = i_urn.indexOf(":", index2);
       tempString = i_urn.substring(index2, index3);
   }
    if(tempString != "") domain = gDMSMap[tempString];
    return domain;
}

//------------------------checkClientInstallation---------------------------------//

function checkClientInstallation(moid) {
    if(navigator.plugins){
	navigator.plugins.refresh();
    }

    gMoid = moid;

    startLoadingMoidBase(moid);
}

function startLoadingMoidBase(moid) {
    gMoid = moid;

    var khostInstalled = false;

    if(isWindowsOS() && isIEBrowser()) {
        try {
            var apiObj = new ActiveXObject("KDX.SecureApi");
            apiObj.authorize(gAuthToken, gAuthSignature);
            khostInstalled = true;
        } catch(e) {
        }
    } else if(isBrowserOK()) {
		if(!isSupportedMacOS() || (isSupportedMacOS() && moid != undefined)){
	        var token = 'token="' + gAuthToken + '"';
	        var signature = 'signature="' + gAuthSignature + '"';
			if(moid != undefined)
	        	var moid = 'moid="' + gMoid + '"';
	        var templatestyle = 'templatestyle="' + gTstyle + '"';
	        var template = 'template="' + gTemplate + '"';

	        var omnp = navigator.mimeTypes["application/omn-plugin"];
	        if(omnp) {
	            var eDiv = document.getElementById("divomnplugin");
	            if(!eDiv) {
	                eDiv = document.createElement("div");
	                eDiv.id = "divomnplugin";
	            }
	            eDiv.innerHTML = '<embed id="omnplugin" type="application/omn-plugin" width=10 height=0 ' +
	                             token + signature + moid + templatestyle + template + '></embed>';
	            document.body.appendChild(eDiv);

                if(document.location.href.indexOf("helper.html") >= 0){
                    setTimeout("window.close()", 10000);
                }

				if (!isPopup() && moid != undefined) return;
	            checkLoadMoidStarted();
	            return;
	        }
		}else{ // Mac-specific plugin check
			var obj = document.getElementById("omnplugin_mac");
			if(obj){
		        var res = obj.isKHostInstalled();
		        khostInstalled = res == 1 ? true : false;
			}
		}
    }
    processInstallation(khostInstalled);
}

function checkLoadMoidStarted() {
    var obj = document.getElementById("omnplugin");
    if(null == obj) {
        setTimeout("checkLoadMoidStarted()", 250);
        return;
    }
    khostInstalled = false;
    try {
        res = obj.isKHostInstalled();
        khostInstalled = res == 1 ? true : false;
    } catch (e) {
        khostInstalled = false;
    }

    var ediv = document.getElementById("divomnplugin");
    if(ediv) {
        ediv.removeChild(obj);
    }
    processInstallation(khostInstalled);
}

//-----------------------------startMacDrmValidator-----------------------------//

var drmValReq;
function startMacDrmValidator()
{
    if(installationMoid) {
		drmValReq = new XMLHttpRequest();
		drmValReq.open("GET", urlDrmChecker+"moid="+installationMoid);
		drmValReq.onreadystatechange = completeMacDrmValidator;
		drmValReq.send(null)
	} else completeDrmValidator();
}

//-----------------------------completeMacDrmValidator-----------------------------//

function completeMacDrmValidator(){
	if(drmValReq.readyState == 4){
		eval(drmValReq.responseText);
	    isDrmContent = is_drm;
	    isPPVContent = is_ppv;
	    if (isMacPlatform() && isDrmContent && isPopup())
	        closePopupWindow();
	    else
	        processInstallation();
	}
}


//-----------------------------startDrmValidator-----------------------------//

var is_drm = null;

function startDrmValidator()
{
    is_drm = null;
    if(installationMoid) {
		var sct = document.createElement("script");
		sct.src = urlDrmChecker+"moid="+installationMoid;
		document.body.appendChild(sct);
		waitDrmValidatorLoaded();
	} else completeDrmValidator();
}

//---------------------------waitDrmValidatorLoaded-------------------------//

function waitDrmValidatorLoaded()
{
  if (is_drm != null)
        completeDrmValidator();
    else
        setTimeout("waitDrmValidatorLoaded()", 100);
}


//-------------------------completeDrmValidator----------------------------//

function completeDrmValidator()
{
    isDrmContent = is_drm;
    isPPVContent = is_ppv;
    if (isMacPlatform() && isDrmContent && isPopup())
        closePopupWindow();
    else
        processInstallation();
}

//---------------------------isPlatformSupported-----------------------------//

var minSysReqIsMeet = -1;

function isPlatformSupported()
{
	if(minSysReqIsMeet == -1){

		var agt = window.navigator.userAgent.toLowerCase();
		var major = parseInt(navigator.appVersion);
		var platform = window.navigator.platform;

		var osIsOk = ((agt.indexOf("windows nt 5")!=-1) || (agt.indexOf("xp")!=-1)) && (platform == "Win32"); // Windows XP

		var isXPSP2 = agt.indexOf("sv1") != -1;

		var isIE = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));

		var IEversion = -1;

		if(agt.indexOf("msie ") != -1){
			IEversion = parseInt(agt.substr((agt.indexOf("msie ")+5), 1));
		}

		var isIE6 = (isIE && (major == 4) && (IEversion >= 6));
	    var isFirefox = agt.indexOf("firefox") >= 0;
	    var isSafari = agt.indexOf("safari") >= 0;

		minSysReqIsMeet = (osIsOk && ((isIE6 && isWMPOK()) || isFirefox)) || (isMacPlatform() && (isFirefox || isSafari));

		//minSysReqIsMeet = false;

		if(!minSysReqIsMeet){
//			alert("Sorry, your computer does not meet OMN Requirements\nTo install OMN, your computer must meet the following system requirements:\nWindows XP, 2000\nInternet Explorer 5.5 or later\nWindows Media Player 9 or 10\n");
			try{
//                closePopupWindow();
			}catch(e){
			}
		}
	}

	return minSysReqIsMeet;
}

function isWindowsOS(){
	var agt = window.navigator.userAgent.toLowerCase();
	var major = parseInt(navigator.appVersion);
	var platform = window.navigator.platform;

	var isWindows = ((agt.indexOf("windows nt 5")!=-1) || (agt.indexOf("xp")!=-1)) && (platform == "Win32"); // Windows XP

	return isWindows;
}

function isSupportedMacOS(){
	var agt = window.navigator.userAgent.toLowerCase();
	var isFirefox = agt.indexOf("firefox") >= 0;
	if(isMacPlatform() && (getSafariVersion(navigator.appVersion) >= 312 || isFirefox)){ // Safari's build 312 corresponds to Mac OS X 10.3.9 or higher
		return true;
	}else{
		return false;
	}
}

function isBrowserOK(){
	var agt = window.navigator.userAgent.toLowerCase();
	var major = parseInt(navigator.appVersion);
	var platform = window.navigator.platform;

	var isIE = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
	var IEversion = -1;
	if(agt.indexOf("msie ") != -1){
		IEversion = parseInt(agt.substr((agt.indexOf("msie ")+5), 1));
	}

	var isIE6 = (isIE && (major == 4) && (IEversion >= 6));
	var isFirefox = agt.indexOf("firefox") >= 0;
	var isSafari = agt.indexOf("safari") >= 0;

	return isIE6 || isFirefox || isSafari;
}

function isWMPOK(){
	var playerIsOk = false;
	try{
		var mediaPlayer = new ActiveXObject("WMPlayer.OCX");
		var version = parseInt(mediaPlayer.versionInfo);

		if(version < 9)
			playerIsOk = false;
		else
			playerIsOk = true;

	}catch(e){};

	return playerIsOk;
}

////////////////////////////////////////////////////////////////////////////////
// FUNCTION: normalizeMoid(i_urn)
//
// DESCRIPTION: Converts string "i_urn" of urn syntax to a moid.
////////////////////////////////////////////////////////////////////////////////
function normalizeMoid(i_urn)
{
    var index = 0;
    var tempString;
    if (i_urn.indexOf("urn") != -1)
    {
        while(true)
        {
            index = i_urn.indexOf(":", index);
            if (index == -1 )
                break;

            index++;
            tempString = i_urn.substring(index, i_urn.length);
        }

        return tempString;
    }
    else
        return i_urn;
}

//------------------------setAffiliateCompany-----------------------------//

function setAffiliateCompany(company)
{	
    affiliateCompany = company;
	//alert(affiliateCompany);
}

//--------------------encodeURI & uncodeURI-------------------------------//

function encodeURI(str)
{
    str = escape(str);
    str = str.replace(/x/g, "xx");
    str = str.replace(/%/g, "xy");
    str = str.replace(/\//g,"xz");
    return str;
}

function uncodeURI(str)
{
    str =str.replace(/xz/g,'/');
    str =str.replace(/xy/g,'%');
    str =str.replace(/xx/g,'x');
    str = unescape(str);
    return str;
}

//--------------------launchKDX & launchAKDX------------------------------//

function launchKDX(moid,company)
{
    installOmnClient(moid,company);
}

function launchAKDX(moid,mode)
{
    switch(mode)
    {
        case   2  : mode = "alpha_stage";break;
        case false: mode = "omn_stage"; break;
        case true:  mode = "demo"; break;
        case null:  mode = "omn";break;
    }
    installOmnClient(moid,null,mode);
}

//----------- launchKDX_CINEQUEST & launchKDX_WGBH -----------------------//

function launchKDX_CINEQUEST(moid)
{
    installOmnClient(moid,"CQUEST");
}

function launchKDX_WGBH(moid)
{
    installOmnClient(moid,"WGBH");
}

//-----------------------showPopupWindow-----------------------------------//

function isPopup(){
    return  document.location.href.indexOf("popups/popup") >= 0;
}

function showPopupWindow()
{
    var x = 0, y = 0, width = 500, height = 500;
    if (screen){
        x = (screen.availWidth - width)/2;
        y = (screen.availHeight - height)/2;
    }
    var winAttributes = "width=" +width+ ",height=" +height
                   + ",screenX=" +x+ ",screenY=" +y+ ",top=" +y+ ",left=" +x
                   + "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizeable=no";
	try{
		if(!isPopup())
			if(window.name == "helperWin"){
				window.name = "popup";
				popupWindow = window;
			}else{
				popupWindow = window.open("about:blank","popup",winAttributes);
			}
		else
			popupWindow = window;
	}catch(e){
		isPlatformSupported();
	}
}

//------------------------isMacPlatform------------------------------------//

function isMacPlatform()
{
//    return true;
    switch(window.navigator.platform)
    {
        case "MacPPC":
        case "Mac68k":
//        case "MacIntel":
            return true;
        default:
            return false;
    }
}

//------------------------isIEBrowser--------------------------------------//

function isIEBrowser(){

    var agt = window.navigator.userAgent.toLowerCase();
    var major = parseInt(navigator.appVersion);
    var platform = window.navigator.platform;

    var isIE = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
    var IEversion = -1;
    if(agt.indexOf("msie ") != -1){
        IEversion = parseInt(agt.substr((agt.indexOf("msie ")+5), 1));
    }

    var isIE6 = (isIE && (major == 4) && (IEversion >= 6));

    return isIE6;
}

//------------------------isSafariBrowser----------------------------------//

function isSafariBrowser(){
    var agt = window.navigator.userAgent.toLowerCase();
    var isSafari = agt.indexOf("safari") >= 0;

    return isSafari;
}


//----------------------getSafariVersion-----------------------------------//

function getSafariVersion(version) {
	var version = version.toLowerCase();
	var search_str = "safari/";
	var start_pos = version.indexOf(search_str);

	if(start_pos >= 0) {
			start_pos += search_str.length;
	} else {
			return 0;
	}

	var len = version.length;
	var end_pos = start_pos;;
	for(var i=start_pos; i<len; i++, end_pos++) {
			var ch = version.charAt(i);

			if(ch < '0' || ch > '9') {
					break;
			}
	}

	var res = 0;
	try {
			res = parseInt(version.substring(start_pos, end_pos));;
	} catch (e) {
			res = 0;
	}

	return res;
}

//----------------parseHtmlArguments---------------------//
var htmlArgs;

function parseHtmlArguments()
{
    var search_str = document.location.search;
    var arg_string = (search_str.length>0) ? search_str.substring(1) : "";

    var args = new Object();
    var pairs = arg_string.split("&");

    for(var i = 0; i < pairs.length; i++) {
        var pos = pairs[i].indexOf('=');

        if (pos == -1) {
            continue;
        }

        var argname = pairs[i].substring(0,pos);
        var value = unescape( pairs[i].substring(pos+1) );

        args[argname] = value;
    }

    htmlArgs = new Object();

    htmlArgs["moid"]         = args["moid"] ? args["moid"] : "";
    htmlArgs["netmanDomain"] = args["domain"] ? args["domain"] : defaultDMS;
    htmlArgs["netmanMoid"]   = args["model"]  ? args["model"] : defaultModel;
    htmlArgs["debug"]        = (args["alerts"] && args["alerts"] == "true") ? true : false;
    htmlArgs["strAttr"]      = arg_string;
    htmlArgs["url"]          = args["url"] ? args["url"] :"";
    htmlArgs["installurl"]   = args["installurl"] ? args["installurl"] :"";
    htmlArgs["servleturl"]   = htmlArgs["installurl"] ? encodeURIComponent(htmlArgs["installurl"]+"/index.html") : "";
    htmlArgs["sparam"]       = args["s"] ? encodeURIComponent(args["s"]) : "";
    htmlArgs["ppv"]          = args["ppv"] ? args["ppv"] : "";
    htmlArgs["drm"]          = args["drm"] ? args["drm"] : "";

    htmlArgs["company"]      = args["company"] ? args["company"] : "";
    htmlArgs["mode"]         = args["mode"] ? args["mode"] : "";

    cook();
}

//-----------------------cook------------------------//

function cook()
{
    if (window.navigator.cookieEnabled) {
        //TODO: save cookies
        for (tag in htmlArgs)  {
            if (htmlArgs[tag]) {
                if(tag != "ppv" && tag != "drm" && tag != "sparam") {
                    document.cookie = tag + "=" + htmlArgs[tag]+"; expires=Mon, 01-Jan-2106 00:00:00 GMT; domain=omn.org";
                }
            }
        }
    }
    else {
        var message = "Please enable cookies for full installation";
        alert(message);
    }
}

//---------------------------downloadOMNClient-----------------------------//
function downloadOMNClientEx(company, mode) {

    var pupUrl = null;
    if(!isBrowserOK()) {
        pupUrl = popupURLs["UNSUPPORTED_BROWSER"];
    } else if(!isPlatformSupported()) {
        pupUrl = popupURLs["UNSUPPORTED_VERSION"];
    }
    if(pupUrl) {
        showPopupWindow();
        popupWindow.location.href = pupUrl;
        popupWindow.focus();
        return;
    }

    var company = !company ? null : affiliateCompanies[company];
    switch(mode)
    {
        case   2  : mode = "alpha_stage";break;
        case false: mode = "omn_stage"; break;
        case true:  mode = "demo"; break;
        case null:  mode = "omn";break;
    }

    var params = "";
    params += "?domain=" + (getDms() == null ? defaultDMS : getDms());
    params += "&model=" + defaultModel;
    params += "&alerts=false";//support version 3.x
    params += "&s=kdx";//support version 3.x
    params += (company == null)? "" : "&url=" + encodeURI(company);
    var installationFile = (isWindowsOS() ? "omn.msi" : "omn.dmg");
    var url = urlInstallIndexPage +
              (isWindowsOS() ? "" : "mac/") +
              (mode == null ? "omn" : mode) + "/";
    params += "&servleturl=" + encodeURIComponent(url + "index.html");
    params += "&installurl=" + encodeURIComponent(url + installationFile);
    url = omn_msi_url + params;

    htmlArgs = new Object();
    htmlArgs["moid"]         = "";
    htmlArgs["netmanDomain"] = defaultDMS;
    htmlArgs["netmanMoid"]   = defaultModel;
    htmlArgs["debug"]        = false;
    htmlArgs["strAttr"]      = url;
    htmlArgs["url"]          = (company == null) ? "" : encodeURI(company);
    htmlArgs["servleturl"]   = encodeURIComponent(url + "index.html");
    htmlArgs["installurl"]   = encodeURIComponent(url + installationFile);

    cook();

    window.location.href = url;
}

function downloadOMNClient(company) {
        downloadOMNClientEx(company, null);
}

//-----------------------find_over-for-publish-----------------------------//

function find_over(_this, name)
{
    var affs = document.getElementsByName("find_within");
    for(var  i=0;i<affs.length;i++)
        affs[i].checked = false;

    _this.checked = true;
    setAffiliateCompany(name);
}

