﻿formId = '';

elementIds = {};

function txtPhoneNumber_onKeyDown(event) {
    return phoneNumber_keyDown(event);
}

function txtPhone_onKeyUp(event) {
    phoneNumber_keyup(event, elementIds[formId].ddlCountry);
}

function changeFocus(newFormId)
{
    try
    {
        $(elementIds[formId].mainContainer).style.zIndex = 2;
    }
    catch(ex) {}
    
    formId = newFormId;
    $(elementIds[formId].mainContainer).style.zIndex = 3;
}

function countryControl_OnChange()
{
    try
    {
        inlinecountryControl_Change("grpProvince"+formId, "grpUKCounty"+formId,"grpAusState" + formId,"grpState"+formId, "grpPostalCode"+formId, elementIds[formId].ddlCountry, elementIds[formId].tbxPhone, elementIds[formId].tbxAreaCode, "areaCode"+formId,elementIds[formId].cvPhoneNumber);
    }catch(ex){}
}

function Client_Validate_PhoneNumber(source, clientside_arguments)
{
    clientside_arguments.IsValid = validatePhoneNumber(elementIds[formId].tbxPhone, elementIds[formId].ddlCountry, elementIds[formId].cvPhoneNumber);
}

function Client_Validate_PostalCode(source, clientside_arguments)
{
    clientside_arguments.IsValid = validatePostalCode(elementIds[formId].tbxPostalCode, elementIds[formId].ddlCountry, elementIds[formId].rfvZipCode);
}

function show_inline_registration(programId)
{
     $("modalRegformContent"+ formId).removeClassName('hidden');
     inlinecountryControl_Change("grpProvince"+formId, "grpUKCounty"+formId,"grpAusState" + formId, "grpState"+formId, "grpPostalCode"+formId, elementIds[formId].ddlCountry, elementIds[formId].tbxPhone, elementIds[formId].tbxAreaCode, "areaCode"+formId,elementIds[formId].cvPhoneNumber);
     inlinevalidators_change(false,elementIds[formId].cvState,elementIds[formId].cvAusState, elementIds[formId].rfvZipCode,elementIds[formId].cvProvince,elementIds[formId].cvCounty,elementIds[formId].rfvFirstName
        ,elementIds[formId].rfvLastName,elementIds[formId].rfvCompany,elementIds[formId].cvPhoneNumber,elementIds[formId].cvCountry,elementIds[formId].revEmail,rfvEmail,elementIds[formId].ddlCountry);
     trackInlineRegistration(programId);
}

function show_inline_registration_downloads(programId, currentFormId, senderImage)
{
     try
     {
        hide_inline_registration(programId, formId);
     }
     catch(ex) {}
     
     formId = currentFormId;
     elementIds[formId].senderImage = senderImage;
     $("modalRegformContent" + formId).removeClassName('hidden');
     inlinecountryControl_Change("grpProvince" + formId, "grpUKCounty" + formId,"grpAusState" + formId, "grpState" + formId, "grpPostalCode" + formId, elementIds[formId].ddlCountry, elementIds[formId].tbxPhone, elementIds[formId].tbxAreaCode, "areaCode"+formId,elementIds[formId].cvPhoneNumber);
     inlinevalidators_change(false,elementIds[formId].cvState,elementIds[formId].cvAusState, elementIds[formId].rfvZipCode,elementIds[formId].cvProvince,elementIds[formId].cvCounty,elementIds[formId].rfvFirstName
        ,elementIds[formId].rfvLastName,elementIds[formId].rfvCompany,elementIds[formId].cvPhoneNumber,elementIds[formId].cvCountry,elementIds[formId].revEmail,elementIds[formId].rfvEmail,elementIds[formId].ddlCountry);
     trackInlineRegistration(programId);
}

function show_inline_registration_webcasts(programId, currentFormId, senderImage, alternateUrl)
{
     if (Get_Cookie('RegistrationDetails'))
     {
         window.location.href = alternateUrl;
     }
     
     else
     {
         try
         {
             hide_inline_registration(programId, formId);
         }
         catch(ex) {}
         
         setBlockHeight(currentFormId);
         setRelative(currentFormId);
         formId = currentFormId;
         elementIds[formId].senderImage = senderImage;
         $("modalRegformContent" + formId).removeClassName('hidden');
         inlinecountryControl_Change("grpProvince" + formId, "grpUKCounty" + formId,"grpAusState" + formId, "grpState" + formId, "grpPostalCode" + formId, elementIds[formId].ddlCountry, elementIds[formId].tbxPhone, elementIds[formId].tbxAreaCode, "areaCode"+formId,elementIds[formId].cvPhoneNumber);
         inlinevalidators_change(false,elementIds[formId].cvState,elementIds[formId].cvAusState, elementIds[formId].rfvZipCode,elementIds[formId].cvProvince,elementIds[formId].cvCounty,elementIds[formId].rfvFirstName
            ,elementIds[formId].rfvLastName,elementIds[formId].rfvCompany,elementIds[formId].cvPhoneNumber,elementIds[formId].cvCountry,elementIds[formId].revEmail,elementIds[formId].rfvEmail,elementIds[formId].ddlCountry);
     }
     
     //trackInlineRegistration(programId);
}

function setRelative(newId)
{
    if (newId != formId)
    {
        if ($("modalRegformContent" + formId))
        {
            var parentDiv = $("modalRegformContent" + formId).up("div.geekWebcastBlock");
            parentDiv.removeClassName("positionRelative");
        }
        
        var newParentDiv = $("modalRegformContent" + newId).up("div.geekWebcastBlock");
        newParentDiv.addClassName("positionRelative");
    }
}

//Fixes the issue with footer and watch now control.
function setBlockHeight(newId)
{
    if ($("modalRegformContent" + newId))
    {
        var parentDiv = $("modalRegformContent" + newId).up("div.geekWebcastBlock");
        
        //See if control is down on footer. Extend if 3 or less blocks left to the footer.
        for (var i = 0; i < 3; i++)
        {
            var newDiv = parentDiv.next("div.geekWebcastBlock");
            if (!newDiv)
            {
                //set extended height to the last block
                parentDiv.addClassName("extendedWebcastBlock");
                return;
            }
            parentDiv = newDiv;
        }
        if (parentDiv.previous("div.geekWebcastBlock"))
            parentDiv = parentDiv.previous("div.geekWebcastBlock");
         
        //remove extended class if all is fine    
        parentDiv.next("div.geekWebcastBlockLast").removeClassName("extendedWebcastBlock");           
    }
}

function hideBlockExtension(currentFormId)
{
    try
    {
        var currentPopup = $("modalRegformContent" + currentFormId);
        if (currentPopup.up("div.geekWebcastBlock"))
        {
            var currentBlock = currentPopup.up("div.geekWebcastBlock");
            if (currentBlock.previous("div.geekWebcastBlock"))
                currentBlock = currentBlock.previous("div.geekWebcastBlock");
            if (currentBlock.next("div.geekWebcastBlockLast"))
               currentBlock.next("div.geekWebcastBlockLast").removeClassName("extendedWebcastBlock");
        }
    }
    catch (exception)
    {
    }
}

function hide_inline_registration(controlId, currentFormId)
{
    $("modalRegformContent" + currentFormId).addClassName('hidden');
    inlinevalidators_change(false,elementIds[currentFormId].cvState, elementIds[formId].cvAusState, elementIds[currentFormId].rfvZipCode,elementIds[currentFormId].cvProvince,elementIds[currentFormId].cvCounty,elementIds[currentFormId].rfvFirstName
        ,elementIds[currentFormId].rfvLastName,elementIds[currentFormId].rfvCompany,elementIds[currentFormId].cvPhoneNumber,elementIds[currentFormId].cvCountry,elementIds[currentFormId].revEmail,elementIds[currentFormId].rfvEmail,elementIds[currentFormId].ddlCountry);
    hideBlockExtension(currentFormId);
}

var inlinevalidators_change = function (enable,stateValControl_,ausstateValControl_,postalCodeValControl_,provinceValControl_,countyValControl_,reqFNameVal_
    ,reqLNameVal_,reqCompanyVal_,cusVPhoneNumberVal_,comCountryVal_,regEmailVal_,rfvEmail_,countryControl_)
{
    try
    {
        ValidatorEnable($(stateValControl_), false);
        ValidatorEnable($(postalCodeValControl_), false);
        ValidatorEnable($(provinceValControl_), false);
        ValidatorEnable($(countyValControl_), false);
        ValidatorEnable($(ausstateValControl_), false);
                
        ValidatorEnable($(reqFNameVal_), enable);
        ValidatorEnable($(reqLNameVal_), enable);
        ValidatorEnable($(reqCompanyVal_), enable);
        ValidatorEnable($(cusVPhoneNumberVal_), enable);
        ValidatorEnable($(comCountryVal_), enable);
        ValidatorEnable($(regEmailVal_), enable);
        ValidatorEnable($(rfvEmail_), enable);
        
        var country = $(countryControl_).value;  
        
        switch(country)
        {
            case "United States":
                ValidatorEnable($(stateValControl_), enable);
                ValidatorEnable($(postalCodeValControl_), enable);
                return;
            case "Canada":
                ValidatorEnable($(provinceValControl_), enable);
                return;
            case "United Kingdom":
                ValidatorEnable($(countyValControl_), enable);
                return;
            case "Australia":
                ValidatorEnable($(ausstateValControl_), enable);
        }
    }catch(ex){}
};

var inlinecountryControl_Change = function (grpProvince, grpUKCounty,grpAusState, grpState, grpPostalCode, countryControl_, phoneControl, tbxAreaCode, areaCodeContainer,cvPhoneNumber)
{
    try
    {
        var currentCountry = $(countryControl_).value;
        $(grpProvince).addClassName('hidden');
        $(grpUKCounty).addClassName('hidden');
        $(grpState).addClassName('hidden');
        $(grpAusState).addClassName('hidden');
        $(grpPostalCode).addClassName('hidden');
        $(areaCodeContainer).addClassName('hidden');
        $(phoneControl).removeClassName('textBox');
        $(phoneControl).removeClassName('apacPhoneNumberTextBox');
        
        switch(currentCountry)
        {
            case "Afghanistan":
            case "American Samoa":
            case "Antarctica":
            case "Bangladesh":
            case "Bhutan":
            case "Brunei Darussalam":
            case "Cambodia":
            case "China":
            case "Christmas Island":
            case "Cocos (Keeling) Islands":
            case "Cook Islands":
            case "Fiji":
            case "French Polynesia":
            case "Guam":
            case "Heard Island and McDonald Is.":
            case "Hong Kong":
            case "India":
            case "Indonesia":
            case "Japan":
            case "Kazakhstan":
            case "Kiribati":
            case "Korea Democratic People’s Republic":
            case "Korea Republic of":
            case "Kyrgyzstan":
            case "Lao People’s Democratic Republic":
            case "Macau":
            case "Malaysia":
            case "Maldives":
            case "Marshall Islands":
            case "Micronesia Federal State of":
            case "Mongolia":
            case "Myanmar":
            case "Nauru":
            case "Nepal":
            case "New Caledonia":
            case "New Zealand":
            case "Niue":
            case "Norfolk Island":
            case "Northern Mariana Islands":
            case "Pakistan":
            case "Palau":
            case "Papua New Guinea":
            case "Philippines":
            case "Pitcairn Island":
                //case "Samoa":
            case "Singapore":
            case "Solomon Islands":
            case "South Georgia":
            case "Sri Lanka":
                //case "Tahiti":
            case "Taiwan":
            case "Tajikistan":
            case "Thailand":
                //case "Timor-Leste":
            case "Tokelau":
            case "Tonga":
            case "Turkmenistan":
            case "Tuvalu":
            case "Uzbekistan":
            case "Vanuatu":
            case "Vietnam":
            case "Wallis and Futuna Islands":
                $(areaCodeContainer).removeClassName('hidden');
                $(phoneControl).addClassName('apacPhoneNumberTextBox');
                return;
            case "Canada":
                $(grpProvince).removeClassName('hidden');
                $(phoneControl).addClassName('textBox');                
                return;
            case "United Kingdom":
                $(grpUKCounty).removeClassName('hidden');
                $(phoneControl).addClassName('textBox');
                return;
            case "United States":
                $(grpState).removeClassName('hidden');
                $(grpPostalCode).removeClassName('hidden');
                $(phoneControl).addClassName('textBox');
                return;
            case "Australia":
                $(areaCodeContainer).removeClassName('hidden');
                $(phoneControl).addClassName('apacPhoneNumberTextBox');
                $(grpAusState).removeClassName('hidden');
                return;
            default:
                $(phoneControl).addClassName('textBox');
                return;
        }
    }
    catch(ex){}
};


function trackProceedButton(pID)
{  
     inlinevalidators_change(true,elementIds[formId].cvState, elementIds[formId].cvAusState,elementIds[formId].rfvZipCode,elementIds[formId].cvProvince,elementIds[formId].cvCounty,elementIds[formId].rfvFirstName
        ,elementIds[formId].rfvLastName,elementIds[formId].rfvCompany,elementIds[formId].cvPhoneNumber,elementIds[formId].cvCountry,elementIds[formId].revEmail,elementIds[formId].rfvEmail,elementIds[formId].ddlCountry);
    if (Page_ClientValidate("inlineRegForm"+formId))
    {
        trackInlineRegistrationEvent17(pID);
        return true;
    }
    return false;
}

function trackInlineRegistration(pID)
{    
    try 
    {
        var sProductId = pID;
	    s = s_gi(s_account);
	    s.linkTrackVars = "prop16,prop13,prop10,prop9,eVar8,eVar5,eVar13,events"; 
	    s.linkTrackEvents = "event8";
	    s.events = "event8";
	    if (pID == "607") {
            s.prop16 = "DLPAGE_TILE1_OrionNPM_DL_Button";
        } else if (pID == "428") {
            s.prop16 = "DLPAGE_TILE2_Toolset_DL_Button";
        }
	    s.prop13 = sProductId;
	    s.eVar5 = s.prop16;
	    s.eVar8 = sProductId;
	    s.prop10 = s.pageName + " | " + elementIds[formId].senderImage;
	    s.prop9 = elementIds[formId].senderImage;
	    s.eVar13 = "undefined:undefined";
	    s.trackingServer = "metrics.solarwinds.com";
	    s.tl(this, "o", "Submit");
    }
    catch (eException) 
    {
        return false;
    }
    return true;
}

function trackInlineRegistrationEvent17(pID)
{    
    try 
    {
        var sProductId = pID;
	    s = s_gi(s_account);
	    s.linkTrackVars = "eVar12,events"; 
	    s.linkTrackEvents = "event17";
	    s.events = "event17";
	    s.eVar12 = sProductId;
	    s.trackingServer = "metrics.solarwinds.com";
	    s.tl(this, "o", "Submit");
    }
    catch (eException) 
    {
        return false;
    }
    return true;
}

function Get_Cookie(check_name) {
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f

	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );

		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}
