﻿
//allow textbox to take numbers 0-9 only
//sample use: <INPUT id="txtChar" onkeypress="return isNumberKey(event)" type="text" name="txtChar">
//http://www.cambiaresearch.com/c4/029c978b-aac5-472e-97a8-95b256f5febd/How-Can-I-Use-Javascript-to-Allow-Only-Numbers-to-Be-Entered-in-a-TextBox.aspx
function isNumberKey(evt)
{
    var charCode = (evt.which) ? evt.which : event.keyCode
         
    if (charCode > 31 && (charCode < 48 || charCode > 57)) //numbers
        return false;

    return true;
}
   
//allow textbox to take numbers 0-9 with comma and dot
//sample use: <INPUT id="txtChar2" onkeypress="return isNumberCurrencyKey(event)" type="text" name="txtChar2">
function isNumberCurrencyKey(evt)
{
    var charCode = (evt.which) ? evt.which : event.keyCode
         
    if(charCode == 44 || charCode == 46) //, .
        return true;
         
    if (charCode > 31 && (charCode < 48 || charCode > 57)) //numbers
        return false;

    return true;
}

function CreatePopUp(url, windowID, attributes)
{
    var newwindow = window.open(url, windowID, attributes);
    if (window.focus) 
    {
        newwindow.focus();
    }
}

function JumpToPageUrl(url)
{
    if (navigator.appName == "Microsoft Internet Explorer")
	{
	    window.location.href(url);
	}
	else
	{
	    location.replace(url); 
	}
    return false;
}

function reRouteImages(levelUpNum)
{
	var levelUpStr = "../";
	var webXImageFolder = "webximage/";
	var imgFolder = "img/";
	
	for (x=0;x<document.images.length;x++)
	{
      	var src = document.images[x].src;
		var index = "";
		var fileName = "";
		var newLoc = "";
		var newRoute = "";
		
		src = src.toLowerCase();
		
		//dealing with custom webXImage, and generic images
		if(src.indexOf(webXImageFolder) > 0 || src.indexOf(imgFolder) > 0) 
		{
			index = src.lastIndexOf("/");
			fileName = src.substring(index+1);
			
			for(var level=0; level<levelUpNum; level++) 
			{ 
				newRoute += levelUpStr;
			}
			
			//webXImageFolder
			if(src.indexOf(webXImageFolder) > 0) 
			{
				newLoc = newRoute + webXImageFolder + fileName;
			}
			//imgFolder
			else if(src.indexOf(imgFolder) > 0) 
			{
				newLoc = newRoute + imgFolder + fileName;
			}
			//alert("newLoc: "+newLoc);
			document.images[x].src = newLoc;
		}
	}
}

//script to fix the radiobuttonlist text wrapping below radio buttons
function RadioButtonListWrapFix()
{
    var ie = false;
    var s;
    if (navigator.appName == "Microsoft Internet Explorer")
        ie = true;
    tables = document.getElementsByTagName('table');
    if (tables != null)
    {
        for(var i = 0, n = tables.length; i < n; ++i) 
        {
            if (tables[i].className == "webxRadiobuttonlist")
            {
                //ie: use outerHTML, everthing else: use innerHTML
                if (ie)
                    s = tables[i].outerHTML;
                else
                    s = tables[i].innerHTML;
                    
                s = s.replace(/<LABEL/gi,"</td><td><label");
                s = s.replace(/<td><input/gi,"<td valign=\"top\"><input"); 
                
                if (ie)
                    tables[i].outerHTML = s;
                else
                    tables[i].innerHTML = s;
            }
        }
    }
}

function CompareSelectorCheckbox_CheckChanged(checkbox)
{
    var selected_pids_and_scids = parent.document.getElementById("ctl00_ContentPlaceHolder1_selected_pids_and_scids");
    var pid = document.getElementById("ctl00_ContentPlaceHolder1_pid");
    var scid = document.getElementById("ctl00_ContentPlaceHolder1_scid");
    var pid_and_scid = pid.value + "/" + scid.value;
    
    if (checkbox.checked)
    {
        if (selected_pids_and_scids.value.indexOf(pid_and_scid) == -1)
            selected_pids_and_scids.value = selected_pids_and_scids.value + pid_and_scid + ",";
    }
    else
    {
        if (selected_pids_and_scids.value.indexOf(pid_and_scid) > -1)
        {
            selected_pids_and_scids.value = selected_pids_and_scids.value.replace("," + pid_and_scid, "");
            selected_pids_and_scids.value = selected_pids_and_scids.value.replace(pid_and_scid + ",", "");
        } 
    }
    
    if (selected_pids_and_scids.value != "")
    {
        parent.ChangeCompareButtonEnabledState(true);
    }
    else
    {
        parent.ChangeCompareButtonEnabledState(false);
    }
}

function CopySelectedPoliciesAndSCIDsFromParent()
{
    var parent_selected_pids_and_scids = parent.document.getElementById("ctl00_ContentPlaceHolder1_selected_pids_and_scids");
    var selected_pids_and_scids = document.getElementById("ctl00_ContentPlaceHolder1_selected_pids_and_scids");

    if (parent_selected_pids_and_scids.value.length > 0)
    {
        if (parent_selected_pids_and_scids.value.charAt(parent_selected_pids_and_scids.value.length - 1) == ",")
        {
            //remove the final comma
            parent_selected_pids_and_scids.value = parent_selected_pids_and_scids.value.slice(0, -1);
        }
    }
    
    selected_pids_and_scids.value = parent_selected_pids_and_scids.value;
    
    if (selected_pids_and_scids.value != "")
    {
        return true;
    }
    else
    {
        return false;
    }
}

function ChangeCompareButtonEnabledState(enabled)
{
    //enable or disable the master iframe button
    
    var iFrames = document.getElementsByTagName("iframe");
    var iFrameDriver;  
    
    //try to find the iFrame of the driver (parent)
    for (var i=0; i<iFrames.length; i++)
    {
        if (iFrames[i].src.indexOf("mode=multiquotedriver") > -1)
        {
            iFrameDriver = iFrames[i];
        }
    }
    
    var iFrameDriverDocument = iFrameDriver.contentWindow ? iFrameDriver.contentWindow.document: iFrameDriver.contentDocument; 
    var inputControls = iFrameDriverDocument.getElementsByTagName("input");
    var compareButton;

    //try to find the compare button
    for (var i=0; i<inputControls.length; i++)
    {
        if (inputControls[i].onclick != null)
        {
            if (String(inputControls[i].onclick).indexOf("CopySelectedPoliciesAndSCIDsFromParent()") > -1)
            {
                compareButton = inputControls[i];
            }
        }
    }
    
    if (compareButton != null)
    {
        if (enabled)
        {
            compareButton.disabled = false;
        }
        else
        {
            compareButton.disabled = true;
        }
    }
}
        
function deleteRecordFillDummyDataIfEmpty(zonePosition, gridName, rowIndex, columnsCount, dummyValue, dummyColor)
{
    var txt = null;
    var ddl = null;
    
    var txtID = null;
    var ddlID = null;
    
    var strZonePosition = null;
    
    //alert('zonePosition: '+zonePosition+', gridName: '+gridName+', rowIndex: '+rowIndex+', columnsCount: '+columnsCount+', dummyValue: '+dummyValue+', dummyColor: '+dummyColor);
    
    if(zonePosition < 10) strZonePosition = '0' + zonePosition;
    else strZonePosition = '' + zonePosition;
    
    for(var i=0; i<columnsCount; i++) 
    {
        txtID = 'ctl00_ContentPlaceHolder1_ctl'+strZonePosition+'_SSLControl_'+gridName+'_txt_'+rowIndex+'_'+i+'_'+gridName;
        ddlID = 'ctl00_ContentPlaceHolder1_ctl'+strZonePosition+'_SSLControl_'+gridName+'_ddl_'+rowIndex+'_'+i+'_'+gridName;
        
        txt = document.getElementById(txtID);
        ddl = document.getElementById(ddlID);

        if(txt != null && txt.value == '')
        {
            txt.value = dummyValue; //'0' is needed for bypass numeric column fields
            txt.style.color = dummyColor;
            txt.style.backgroundColor = dummyColor;
        }
        else if(ddl != null) 
        {
            if(ddl.selectedIndex == 0 && ddl.options[ddl.selectedIndex].value == '')
            {
                ddl.selectedIndex = 1;
            }
        }
    }
}

/**********************/
/*Progress Page Script*/
var pageNextButtonID = null;
                                                
function Progress_Page_Load()
{
    var btnNext = document.getElementById(pageNextButtonID);
    btnNext.click();
}

function blinkIfIE(imgProgressID) 
{
    if(navigator.appName=="Microsoft Internet Explorer") 
    {
        blink(imgProgressID);
    }
}

function blink(imgProgressingID) 
{
    var imgProgressing = document.getElementById(imgProgressingID);
    
    if(imgProgressing != null) 
    {
        imgProgressing.style.visibility = ( imgProgressing.style.visibility == 'visible' )? 'hidden' : 'visible';
        setTimeout("blink('"+imgProgressingID+"');", 500);
    }
}

function isIE() 
{
    return (navigator.appName=="Microsoft Internet Explorer");
}

function disableParentPage() 
{ 
    if(opener != null) 
    { 
        opener.document.forms[0].disabled = true; 
    }
}

function enableParentPage() 
{
    if(opener != null) 
    { 
        opener.document.forms[0].disabled = false; 
    } 
}
