﻿// JScript File
var CustomerID = -1;
var NewsletterValidation = new Array();
var DivStartHeight = 40;

function LoadCustomerNewsletterData(doc)
{
    var xml = GetXMLObject(doc).childNodes[0];
    var id = xml.getAttribute('NewsletterID');
    var SetStatus = xml.getAttribute('SetStatus');
    var fields = xml.childNodes[0].childNodes;
    var countries = xml.childNodes[1].childNodes;
    var tbl = document.getElementById('tblNewsletterContent' + id);
    
    for (r = tbl.rows.length-1; r>=0; r--)
        tbl.deleteRow(r);
    
    document.getElementById('divSliderNewsletter' + id).style.height = DivStartHeight + 'px';
        
    NewsletterValidation[id] = '';
    eval('NewsletterFields' + id + ' = ""');
    
    var divButton = document.getElementById('divNewsletterButton' + id);
    
    var savecontent = '';
    savecontent += '<a href="javascript:SaveNewsletter(' + id + ')"><img src="' + jsImagePath + 'Account/Subscriptions/save_btn.gif" border="0"/></a>';
    divButton.innerHTML = savecontent;
    divButton.style.height = '';
    if (fields.length > 0)
    {
        var row = tbl.insertRow(0);
        var cell = row.insertCell(0);
        cell.innerHTML = '&nbsp;';
    
        for (i=0; i<fields.length; i++)
        {
            var nme = fields[i].getAttribute('name');
            var nlfieldid = fields[i].getAttribute('newsletterfieldid');
            var val = getInnerText(fields[i]);
            var req = fields[i].getAttribute('required');
            
            row = tbl.insertRow(tbl.rows.length);
            
            cell = row.insertCell(0);
            cell.innerHTML = nme + ':';
            cell.className = 'SubscriptionDetailsFieldName';
            
            var cap = '';
            
            var doValidation = true;
            var AddTextValidation = (req == 'true');
            
            switch (nme)
            {
                case 'Title': //Textbox - Dis
                    doValidation = false;
                    cap = GetTextBox(id, nlfieldid, nme, val, true, (AddTextValidation && doValidation));
                    break;
                case 'FirstName': //Textbox - Dis
                    doValidation = false;
                    cap = GetTextBox(id, nlfieldid, nme, val, true, (AddTextValidation && doValidation));
                    break;
                case 'Surname': //Textbox - Dis
                    doValidation = false;
                    cap = GetTextBox(id, nlfieldid, nme, val, true, (AddTextValidation && doValidation));
                    break;
                case 'Email': //Textbox - Dis
                    doValidation = false;
                    cap = GetTextBox(id, nlfieldid, nme, val, true, (AddTextValidation && doValidation));
                    break;
                case 'Address 1': //Textbox - En
                    cap = GetTextBox(id, nlfieldid, nme, val, false, (AddTextValidation && doValidation));
                    break;
                case 'Address 2': //Textbox - En
                    cap = GetTextBox(id, nlfieldid, nme, val, false, (AddTextValidation && doValidation));
                    break;
                case 'Address 3': //Textbox - En
                    cap = GetTextBox(id, nlfieldid, nme, val, false, (AddTextValidation && doValidation));
                    break;
                case 'Town': //Textbox - En
                    cap = GetTextBox(id, nlfieldid, nme, val, false, (AddTextValidation && doValidation));
                    break;
                case 'County': //Textbox - En
                    cap = GetTextBox(id, nlfieldid, nme, val, false, (AddTextValidation && doValidation));
                    break;
                case 'Post Code': //Textbox - En
                    cap = GetTextBox(id, nlfieldid, nme, val, false, (AddTextValidation && doValidation));
                    break;
                case 'Country': 
                    cap = BuildCountryDD(id, nlfieldid, countries, val, (AddTextValidation && doValidation));
                    break;
                case 'Telephone Number': //Textbox - En
                    cap = GetTextBox(id, nlfieldid, nme, val, false, (AddTextValidation && doValidation));
                    break;
                case 'Gender': //Textbox - Dis
                    doValidation = false;
                    cap = GetTextBox(id, nlfieldid, nme, val, true, (AddTextValidation && doValidation));
                    break;
                case 'Date of Birth': //Textbox - Dis
                    doValidation = false;
                    cap = GetTextBox(id, nlfieldid, nme, val, true, (AddTextValidation && doValidation));
                    break;
            }
            cell = row.insertCell(1);
            cell.className = 'SubscriptionDetailsField';
            cell.innerHTML = cap;
            cell = row.insertCell(2);
            cell.innerHTML = '&nbsp;';
            if ((AddTextValidation) && (doValidation))
            {
                 cell.id = 'clValNewsletter' + id + 'Field' + nlfieldid;
                 cell.className = 'FormValidation';
                 if (nme != 'Country')
                 {    
                    NewsletterValidation[id] += 'checkTextBoxIsValid(\'txtNewsletter' + id + 'Field' + nlfieldid + '\', \'' + nme + '\', \'clValNewsletter' + id + 'Field' + nlfieldid + '\');';
                 } 
                 else
                 {
                    NewsletterValidation[id] += 'checkDropDownIsValid(\'txtNewsletter' + id + 'Field' + nlfieldid + '\', \'Country\', \'clValNewsletter' + id + 'Field' + nlfieldid + '\');'
                 }  

            }
        }
        var scrollHeight = document.getElementById('divSliderContentNewsletter' + id).offsetHeight;
        OpenNewsletterSlider(id, scrollHeight);
    }    
    
}

function CloseNewsletterSave(id)
{
    var closeTarget = DivStartHeight;
    var s = document.getElementById('divSliderNewsletter' + id);
    var current = s.style.height.substr(0, s.style.height.length-2);
    var slideto = ((current*1) - (SliderStep*1));
    if (slideto < closeTarget) slideto = closeTarget;
    s.style.height = slideto + 'px';
    
    if (slideto > closeTarget)
        setTimeout('CloseNewsletterSave("' + id + '")', SliderSpeed);
    else
    {   
        NewsletterValidation[id] = '';
        eval('NewsletterFields' + id + ' = ""')
        var tbl = document.getElementById('tblNewsletterContent' + id);
        for (r = tbl.rows.length-1; r>=0; r--)
            tbl.deleteRow(r);
    }

}

function StartCloseNewsletterFull(id)
{
    SetAllNewsletterLinks(id, 'closing')
    CloseNewsletterFull(id);
}

function CloseNewsletterFull(id)
{
    var closeTarget = DivStartHeight;
    var s = document.getElementById('divSliderNewsletter' + id);
    var current = s.style.height.substr(0, s.style.height.length-2);
    var slideto = ((current*1) - (SliderStep*1));
    if (slideto < closeTarget) slideto = closeTarget;
    s.style.height = slideto + 'px';
    
    if (slideto > closeTarget)
        setTimeout('CloseNewsletterFull("' + id + '")', SliderSpeed);
    else
        SetAllNewsletterLinks(id, 'closed')  
}

function SendSaveData(id)
{
    var fieldlist = eval('NewsletterFields' + id).split(',');
    var fieldcount = 0;
    var qs = '?NewsletterID=' + id + '&CustomerID=' + CustomerID;
    qs += '&Status=' + document.getElementById('drpNewsletterStatus' + id).value;
    for (i=0; i< fieldlist.length; i++)
    {
        if (fieldlist[i] != '')
        {
            fieldcount ++;
            var value = document.getElementById(fieldlist[i]).value;
            var tmp = fieldlist[i].split('Field');
            var fieldid = tmp[1];
            qs += '&FieldID' + fieldcount + '='  + fieldid;
            qs += '&FieldValue' + fieldcount + '=' + value;
        }
    }
    qs += '&FieldCount=' + fieldcount;
    NewsletterValidation[id] = '';
    eval('NewsletterFields' + id + ' = ""')
    sndReq('/XML/UpdateNewsletterDetails.aspx' + qs);
}

function SetNewsletterUpdated(id)
{
    setStatusMessage(id, true);
}

function SaveNewsletter(id)
{
    IsPageValid = true;
    eval(NewsletterValidation[id]);
    if (IsPageValid)
    {
        SendSaveData(id);
        NewsletterValidation[id] = '';
        StartCloseNewsletterFull(id)
    }
}

function BuildCountryDD(NewsletterID, nlfieldid, clist, val, addValidation)
{    
    var ret = '<select id="txtNewsletter' + NewsletterID + 'Field' + nlfieldid + '" ';
    if (addValidation)
    {
        var js = 'checkDropDownIsValid(\'txtNewsletter' + NewsletterID + 'Field' + nlfieldid + '\', \'Country\', \'clValNewsletter' + NewsletterID + 'Field' + nlfieldid + '\');'
        ret += 'onblur="' + js + '" ';
        ret += 'onchange="' + js + '" ';
    }
    
    ret += '><option value="-1">Please Select</option>';
    for (x=0; x<clist.length; x++)
    {
        var id = clist[x].getAttribute('id');
        ret += '<option value="' + id + '" '
        if (val == id) ret += 'selected';
        ret += '>' + clist[x].getAttribute('name') + '</option>';
    }
    ret += '</select>';
    eval('NewsletterFields' + NewsletterID + ' += "txtNewsletter' + NewsletterID + 'Field' + nlfieldid + ',"')

    return ret;
}

function GetTextBox(NewsletterID, nlfieldid, FieldName, FieldValue, Disabled, addTextValidation)
{
    var ret = '<input type="text" id="txtNewsletter' + NewsletterID + 'Field' + nlfieldid + '" value="' + FieldValue + '" ';
    
    if (Disabled) 
        ret += 'disabled';
    else if (addTextValidation)
    {
        ret += 'onblur="checkTextBoxIsValid(\'txtNewsletter' + NewsletterID + 'Field' + nlfieldid + '\', \'' + FieldName + '\', \'clValNewsletter' + NewsletterID + 'Field' + nlfieldid + '\');"';
    }
    ret += ' />';
    //ret += 'txtNewsletter' + NewsletterID + 'Field' + nlfieldid;
    eval('NewsletterFields' + NewsletterID + ' += "txtNewsletter' + NewsletterID + 'Field' + nlfieldid + ',"')

    return ret;
}

function OpenNewsletterSlider(id, target)
{
    var s = document.getElementById('divSliderNewsletter' + id);
    var current = s.style.height.substr(0, s.style.height.length-2);
    var slideto = ((current*1) + (SliderStep*1));
    if (slideto > target) slideto = target;
    s.style.height = slideto + 'px';
    
    if (slideto < target)
        setTimeout('OpenNewsletterSlider("' + id + '",' + target + ')', SliderSpeed);
    else
        SetAllNewsletterLinks(id, 'open')
}

function OpenNewsletter(id)
{
    setStatusMessage(id, false);
    SetAllNewsletterLinks(id, 'opening')
    var NewStatus = document.getElementById('drpNewsletterStatus' + id).value;
    if (NewStatus == 1)
    {
        var tblContent = document.getElementById('tblNewsletterContent' + id);
        var s = document.getElementById('divSliderNewsletter' + id);
    
        var current = s.style.height.substr(0, s.style.height.length-2);
        var row = tblContent.insertRow(tblContent.rows.length);
        var cell = row.insertCell(0);
        cell.innerHTML = '<img src="' + jsImagePath + 'loading.gif" />';

        s.style.height = ((current*1) + (SliderStep*1)) + 'px';
        sndReq('/XML/getNewsletterDetails.aspx?CustomerID=' + CustomerID + '&NewsletterID=' + id + '&SetStatus=' + NewStatus);
    }
    else
    {
        var divButton = document.getElementById('divNewsletterButton' + id);
        if (divButton.innerHTML == '')
        {
            var savecontent = '<a href="javascript:SaveNewsletter(' + id + ')"><img src="' + jsImagePath + 'Account/Subscriptions/save_btn.gif" border="0"/></a>';
            divButton.innerHTML = savecontent;
            divButton.style.height = '';
        }
        else
        {
            CloseNewsletterSave(id);
        }
    }
}

function SetAllNewsletterLinks(id, status)
{
    var clTop = document.getElementById('clNewsletterTop' + id)
    var clTop1 = document.getElementById('clNewsletterHeader1O' + id)
    var clTop2 = document.getElementById('clNewsletterHeader2O' + id)
    var clTop3 = document.getElementById('clNewsletterHeader3O' + id)
    var clTop4 = document.getElementById('clNewsletterHeader4O' + id)
    var clTop5 = document.getElementById('clNewsletterHeader5O' + id)
    
    if (status == 'opening')
    {
        clTop.style.backgroundImage = 'url("' + jsImagePath + 'Account/Subscriptions/subsHeaderBG_open.gif")';
        clTop1.onclick = '';
        clTop2.onclick = '';
        clTop3.onclick = '';
        clTop4.onclick = '';
        clTop5.onclick = '';
        clTop1.style.cursor = '';
        clTop2.style.cursor = '';
        clTop3.style.cursor = '';
        clTop4.style.cursor = '';
        clTop5.style.cursor = '';
    }
    
    if (status == 'open')
    {
        clTop.style.backgroundImage = 'url("' + jsImagePath + 'Account/Subscriptions/subsHeaderBG_open.gif")';
        clTop1.onclick = '';
        clTop2.onclick = '';
        clTop3.onclick = '';
        clTop4.onclick = '';
        clTop5.onclick = '';
        clTop1.style.cursor = '';
        clTop2.style.cursor = '';
        clTop3.style.cursor = '';
        clTop4.style.cursor = '';
        clTop5.style.cursor = '';
    }
    
    if (status == 'closing')
    {
        clTop.style.backgroundImage = 'url("' + jsImagePath + 'Account/Subscriptions/subsHeaderBG_closed.gif")';
        clTop1.onclick = '';
        clTop2.onclick = '';
        clTop3.onclick = '';
        clTop4.onclick = '';
        clTop5.onclick = '';
        clTop1.style.cursor = '';
        clTop2.style.cursor = '';
        clTop3.style.cursor = '';
        clTop4.style.cursor = '';
        clTop5.style.cursor = '';
    }
    
    if (status == 'closed')
    {
        clTop.style.backgroundImage = 'url("' + jsImagePath + 'Account/Subscriptions/subsHeaderBG_closed.gif")';
        clTop1.onclick = function () { OpenNewsletter(id); };
        clTop2.onclick = function () { OpenNewsletter(id); };
        clTop3.onclick = function () { OpenNewsletter(id); };
        clTop4.onclick = function () { OpenNewsletter(id); };
        clTop5.onclick = function () { OpenNewsletter(id); };
        clTop1.style.cursor = 'pointer';
        clTop2.style.cursor = 'pointer';
        clTop3.style.cursor = 'pointer';
        clTop4.style.cursor = 'pointer';
        clTop5.style.cursor = 'pointer';
        
        var tbl = document.getElementById('tblNewsletterContent' + id);
        for (r = tbl.rows.length-1; r>=0; r--)
            tbl.deleteRow(r);
            
        var divButton = document.getElementById('divNewsletterButton' + id);
        divButton.innerHTML = '';
        divButton.style.height = '0px';
    }
}

function setStatusMessage(id, updated)
{
    var cl = document.getElementById('clMessageUpdated' + id);
    if (updated)
        cl.innerHTML = document.getElementById('SubscriptionUpdatedMessage').innerHTML;
    else
        cl.innerHTML = '';
}