/* Originator Subission Functions */
function SubmitAnchor(pageid)
{
    try { HidePopup(); } catch (ex) { }
    document.getElementById('LinkPageId').value = pageid;
    document.getElementById('aspnetForm').target = '_self';
    document.getElementById('aspnetForm').submit();
    return (false);
}

function SetFormTarget(target)
{
    try { HidePopup(); } catch (ex) { }
    document.getElementById('aspnetForm').target = target;
    document.getElementById('LinkPageId').value = '';
    document.getElementById('Submission').value = 'True';
}

function SubmitFormTarget(target)
{
    try { HidePopup(); } catch (ex) { }
    document.getElementById('aspnetForm').target = target;
    document.getElementById('LinkPageId').value = '';
    document.getElementById('Submission').value = 'True';
    document.getElementById('aspnetForm').submit();
    return (false);
}

function SubmitAnchorTarget(pageid, target)
{
    try { HidePopup(); } catch (ex) { }
    document.getElementById('LinkPageId').value = pageid;
    document.getElementById('aspnetForm').target = target;
    document.getElementById('aspnetForm').submit();
    return (false);
}

/* Originator AutoTab Functions */
function AutoTab(input)
{
    if (input.value.length >= input.maxLength)
    {
        input.value = input.value.slice(0, input.maxLength);
        try
        {
            input.form[GetInputIndex(input) + 1].focus();
        }
        catch (ex)
        {
        }
    }
}

function GetInputIndex(input)
{
    var i = 0;
    while (i < input.form.length)
    {
        if (input.form[i] == input) return (i);
        i++;
    }
}

function ManTabOff(firstInputId)
{
    if (document.getElementById(firstInputId).value.length > 0)
    {
        if (event.keyCode == "9") return (false);
    }
    return (true);
}

/* Originator Date Functions */
function MakeStringArray(Start, End)
{
    var RetVal = new Array((End - Start) + 1);
    for (i = 0; i < RetVal.length; i++)
    {
        if (i + Start < 10)
        {
            RetVal[i] = "0" + (i + Start);
        }
        else
        {
            RetVal[i] = i + Start;
        }
    }
    return (RetVal);
}

function Reset(SelectObject)
{
    for (i = 1; i < SelectObject.options.length; i++)
    {
        SelectObject.options[i].disabled = false;
        SelectObject.options[i].className = "enabled";
    }
}

function DaysInMonth(Date)
{
    switch (Date.getMonth() + 1)
    {
        case 2:
            if (Date.getFullYear() % 400) return (29);
            if (Date.getFullYear() % 100) return (28);
            if (Date.getFullYear() % 4) return (29);
            return (28);
        case 4:
        case 6:
        case 9:
        case 11:
            return (30);
        default:
            return (31);
    }
}

function RefreshYear(Year, Month, Day, MinDate, MaxDate)
{
    var MinYearMonths = MakeStringArray(MinDate.getMonth() + 1, 12);
    var MidYearMonths = MakeStringArray(1, 12);
    var MaxYearMonths = MakeStringArray(1, MaxDate.getMonth() + 1);
    if (Year.value == "")
    {
        Reset(Month);
        if (Day != null) Reset(Day);
    }
    else
    {
        var CurrentValidMonths;
        switch (parseInt(Year.value))
        {
            case MinDate.getFullYear():
                CurrentValidMonths = MinYearMonths;
                break;
            case MaxDate.getFullYear():
                CurrentValidMonths = MaxYearMonths;
                break;
            default:
                CurrentValidMonths = MidYearMonths;
                break;
        }
        for (i = 1, j = 0; i < Month.options.length; i++)
        {
            if (j < CurrentValidMonths.length)
            {
                if (Month.options[i].value == CurrentValidMonths[j])
                {
                    Month.options[i].disabled = false;
                    Month.options[i].className = "enabled";
                    j++;
                }
                else
                {
                    Month.options[i].disabled = true;
                    Month.options[i].className = "disabled";
                }
            }
            else
            {
                Month.options[i].disabled = true;
                Month.options[i].className = "disabled";
            }
        }
        RefreshMonth(Year, Month, Day, MinDate, MaxDate);
    }
}

function RefreshMonth(Year, Month, Day, MinDate, MaxDate)
{
    if (Month.value == "")
    {
        if (Day != null) Reset(Day);
    }
    else 
    {
        if (Month.options[Month.selectedIndex].disabled == true)
        {
            Month.selectedIndex = 0;
            if (Day != null) Reset(Day);
        }
        else
        {
            var CurrentValidDays;
            if (parseInt(Year.value) == MinDate.getFullYear() && parseInt(Month.value) == MinDate.getMonth() + 1)
            {
                CurrentValidDays = MakeStringArray(MinDate.getDate(), DaysInMonth(MinDate));
            }
            else if (parseInt(Year.value) == MaxDate.getFullYear() && parseInt(Month.value) == MaxDate.getMonth() + 1)
            {
                CurrentValidDays = MakeStringArray(1, MaxDate.getDate());
            }
            else
            {
                switch (parseInt(Month.value))
                {
                    case 2:
                        if (parseInt(Year.value) % 400 == 0) CurrentValidDays = MakeStringArray(1, 29);
                        else if (parseInt(Year.value) % 100 == 0) CurrentValidDays = MakeStringArray(1, 28);
                        else if (parseInt(Year.value) % 4 == 0) CurrentValidDays = MakeStringArray(1, 29);
                        else CurrentValidDays = MakeStringArray(1, 28);
                        break;
                    case 4:
                    case 6:
                    case 9:
                    case 11:
                        CurrentValidDays = MakeStringArray(1,30);
                        break;
                    default:
                        CurrentValidDays = MakeStringArray(1,31);
                        break;
                }
            }
            if (Day != null)
            {
                for (i = 1, j = 0; i < Day.options.length; i++)
                {
                    if (j < CurrentValidDays.length)
                    {
                        if (Day.options[i].value == CurrentValidDays[j])
                        {
                            Day.options[i].disabled = false;
                            Day.options[i].className = "enabled";
                            j++;
                        }
                        else
                        {
                            Day.options[i].disabled = true;
                            Day.options[i].className = "disabled";
                        }
                    }
                    else
                    {
                        Day.options[i].disabled = true;
                        Day.options[i].className = "disabled";
                    }
                }
                ValidateDay(Day);
            }
        }
    }
}

function ValidateDay(Day)
{
    if (Day.options[Day.selectedIndex].disabled == true) 
    {
        Day.selectedIndex = 0;
    }
}

/*
function SetValueByKey(key, value)
{
    document.getElementById(key).value = value;
}
*/

/* Function that does the Yes/No single page buttons. */
function SetInputValue(id, value)
{
    var inputObj = document.getElementById(id);
    if (inputObj)
    {
        inputObj.value = value;
    }
}

// Show Hide

<!--
function ACXswitchMenu(obj) {
	var el = document.getElementById(obj);
	if ( el.style.display != "none" ) {
		el.style.display = 'none';
	}
	else {
		el.style.display = '';
	}
}
//-->

/* Function that does the date. */
function copyrightDate()
{
	document.write(new Date().getFullYear())
}

var message="";
///////////////////////////////////
function clickIE() {if (document.all) {(message);return false;}}
function clickNS(e) {if 
(document.layers||(document.getElementById&&!document.all)) {
if (e.which==2||e.which==3) {(message);return false;}}}
if (document.layers) 
{document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;}
else{document.onmouseup=clickNS;document.oncontextmenu=clickIE;}

document.oncontextmenu=new Function("return false")

/* Function that does rollovers. */
function loadiFrame(id, url) {  
    if (document.getElementById(id).src) document.getElementById(id).src = url;
    else window.frames[id].location = url;
} 

/* Function that does rollovers. */
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
  
function MM_swapImage() { //v3.0
    try{
        var j = 0; 
        var args = MM_swapImage.arguments;
        document.MM_sr = new Array; 
        for(var i = 0; i < (args.length - 2); i += 3){
            var imgObject = MM_findObj(args[i]);
            if (imgObject != null){
                document.MM_sr[j++] = imgObject; 
                if(!imgObject.oSrc)
                    imgObject.oSrc = imgObject.src; 
                imgObject.src = args[i+2];
            }
            UpdatePageState(args[i], "MM_swapImage('" + args[i] + "', '" + args[i+1] + "', '" + args[i+2] + "');");
        }
    }
    catch (ex){
    }
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function SelectImage(imageId)
{
    document.iframeSelectedImageId = imageId;
    SwapImageRestore();
}

function SwapImage(imageId, srcNew)
{
    var imgObject = document.getElementById(imageId);
    if (imgObject)
    {
        if (!document.iframeImages)
        {
            document.iframeImages = new Array();
        }
    
        var bPush = true;
        for (var i = 0; i < document.iframeImages.length; i++)
        {
            if (document.iframeImages[i] == imgObject)
            {
                bPush = false;
                break;
            }
        }
        
        imgObject.oSrc = imgObject.src;
        imgObject.src = srcNew;
        
        if (bPush)
        {
            document.iframeImages.push(imgObject);
        }
    }
    else{
        alert ('doh!');
    }
}

function SwapImageRestore()
{
    if (document.iframeImages)
    {
        for (var i = 0; i < document.iframeImages.length; i++)
        {
            if (document.iframeImages[i].id != document.iframeSelectedImageId)
            {
                document.iframeImages[i].src = document.iframeImages[i].oSrc;
            }   
        }
    }
}

/* Select Tab */

function SelectTab(DivId){
    try{
        var SelectedTab = document.getElementById(DivId);
        var AllTabs = document.getElementsByTagName(SelectedTab.getAttribute("tagName"));
        for (var i = 0; i < AllTabs.length; i++){
            if (AllTabs.item(i).getAttribute("name") == SelectedTab.getAttribute("name")){
                document.getElementById(AllTabs.item(i).getAttribute("id")).style["display"] = "none";
            }
        }
        SelectedTab.style["display"] = "block";
        UpdatePageState(SelectedTab.getAttribute("name"), "SelectTab('" + DivId + "');");
    }
    catch (ex){
    }
}

/* Expand / Collapse Functionality */

function ExpandContent(DivId){
    try{
        document.getElementById(DivId).style["display"] = "block";
        UpdatePageState(DivId, "ExpandContent('" + DivId + "');");
    }
    catch (ex){
    }
}

function CollapseContent(DivId){
    try{
        document.getElementById(DivId).style["display"] = "none";
        UpdatePageState(DivId, "CollapseContent('" + DivId + "');");
    }
    catch (ex){
    }
}

/* Page State Persistence */

var PersistenceKeys = new Array();
var PersistenceMethods = new Array();

function UpdatePageState(Key, Method){
    var Index = -1;
    var Counter = 0;
    for (Counter = 0; Counter < PersistenceKeys.length; Counter = Counter + 1){
        if (PersistenceKeys[Counter] == Key){
            Index = Counter;
            break;
        }
    }
    if (Index != -1){
        PersistenceMethods[Index] = Method;
    }
    else{
        PersistenceKeys[PersistenceKeys.length] = Key
        PersistenceMethods[PersistenceMethods.length] = Method;
    }
    SavePageState();
}

function SavePageState(){
    var PSP = document.getElementById("PageStatePersistence");
    if (PSP != null){
        PSP.value = PersistenceKeys.join("#") + "@" + PersistenceMethods.join("#");    
    }
}

function RecoverPageState(){
    LoadPageState();
    var Counter = 0;
    for (Counter = 0; Counter < PersistenceMethods.length; Counter = Counter + 1){
        eval(PersistenceMethods[Counter]);
    }
}

function LoadPageState(){
    var PSP = document.getElementById("PageStatePersistence");
    if (PSP != null){
        var Persistences = PSP.value.split("@");
        if (Persistences.length == 2){
            PersistenceKeys = Persistences[0].split("#");
            PersistenceMethods = Persistences[1].split("#");
        }
    }
}

/* Print Page */

function PrintPage(){
    if (!window.print) return;
    window.print();
    return (false);
}

function OfferPopper()
{
    this.m_Initialized = false;
}

OfferPopper.prototype.m_InputElements;
OfferPopper.prototype.m_SelectElements;
OfferPopper.prototype.m_TextAreaElements;
OfferPopper.prototype.m_Initialized;

OfferPopper.prototype.GetValue = function(Id)
{
    var RetVal = '';
    
    var IdRegExp = new RegExp(Id + '$');
   
    if (RetVal == '')
    {
        for (i = 0; i < this.m_InputElements.length; i++)
        {
            if (IdRegExp.test(this.m_InputElements[i].id))
            {
                RetVal = this.m_InputElements[i].value;
                break;
            }
        }
    }
    
    if (RetVal == '')
    {
        for (i = 0; i < this.m_SelectElements.length; i++)
        {
            if (IdRegExp.test(this.m_SelectElements[i].id))
            {
                RetVal = this.m_SelectElements[i].options[this.m_SelectElements[i].selectedIndex].value;
                break;
            }
        }
    }

    if (RetVal == '')
    {
        for (i = 0; i < this.m_TextAreaElements.length; i++)
        {
            if (IdRegExp.test(this.m_TextAreaElements[i].id))
            {
                RetVal = this.m_TextAreaElements[i].value;
                break;
            }
        }
    }
    
    return (RetVal);
}

OfferPopper.prototype.Init = function()
{
    if (!this.m_Initialized)
    {
        // get all elements
        this.m_InputElements = document.getElementsByTagName('input');
        this.m_SelectElements = document.getElementsByTagName('select');
        this.m_TextAreaElements = document.getElementsByTagName('textarea');
        
        // prevent reinitialzation
        this.m_Initialized = true;
    }
}

OfferPopper.prototype.PrePop = function(url)
{
    var FieldIdRegExp = /#[^#]+#/g;
    
    var FieldIds = url.match(FieldIdRegExp);
    if (FieldIds != null)
    {
        for (j = 0; j < FieldIds.length; j++)
        {        
            var FieldId = FieldIds[j].replace(/#/g, '');
            url = url.replace(FieldIds[j], this.GetValue(FieldId)); 
        }
    }
    
    return (url);
}

OfferPopper.prototype.doPopUnder = function(url, specs)
{
    this.Init();
    url = this.PrePop(url);
    
    if (url != null && url != '')
    {
        var Win = window.open(url, '_blank', specs);
        Win.blur();
    }
}

var OriginOfferPopper = new OfferPopper();

function createXMLHttpRequest() {
	try { return new XMLHttpRequest(); } catch(e) {}
	try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
	try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
	return null;
}

function GetElementText(xml, elementName) {
	if (document.implementation.hasFeature("XPath", "3.0")) {
		if (typeof XMLDocument == "undefined") {
			XMLDocument = Document;
		}
		var oNSResolver = xml.createNSResolver(xml.documentElement);
		var xpath = "*[name()='" + elementName + "']/text()";
		var aItems = xml.evaluate(xpath, xml.documentElement, oNSResolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
		if (aItems == null || aItems.snapshotLength == 0) {
			return "";
		}
		else {
			return aItems.snapshotItem(0).data;
		}
	}
	else {
		var node = xml.documentElement.selectSingleNode(elementName);
		if (node == null) {
			return "";
		}
		else {
			return node.text;
		}
	}
}

function GetCityStateFromZip(zip) {
	var xhr = createXMLHttpRequest();
	if (xhr == null) {
		return null;
	}
	xhr.onreadystatechange = function() {
		if (xhr.readyState == 4) {
			if (xhr.status == 200) {
				var xml = xhr.responseXML;
				if (xml != null) {
					var _state = document.getElementById('_state');
					if (_state != null) {
						_state.value = GetElementText(xml, 'State');
					}
					var _city = document.getElementById('_city');
					if (_city != null) {
						_city.value = GetElementText(xml, 'City');
					}
				}
			}
		}
	}
	xhr.open("POST", "GetCityState.asmx/GetCityStateFromZip", true);
	xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xhr.send('zip=' + zip);
}
