﻿var jsImagePath = '';
var Currency = '£';
var TAFURL='';
var TAFProductName='';
var SearchTerm = '';

var IsPageValid = true;


function GetSearchResults()
{
    var tbl = document.getElementById('tblResults');
    for (r = tbl.rows.length-1; r>=0; r--)
        tbl.deleteRow(r);
    var rw = tbl.insertRow(0);
    var cl = rw.insertCell(0); 
    tbl.style.width = '100%'; 
    cl.style.width = '100%';
    cl.style.textAlign = 'center';
    cl.innerHTML = '<img src="' + jsImagePath + 'loading.gif">';
    
    SearchTerm = doReplace(SearchTerm, '&', 'ampis');
    sndReq('/XML/Search.aspx' +
          '?Search=' + SearchTerm +
          '&PageSize=' + ContentPageSize + 
          '&PageNumber=' + ContentPageNumber)  
}

function BuildSearchPaging(PageNumber, TotalPages, TotalRecords, StartRecord, EndRecord)
{
    var clPrevious = document.getElementById('clContentBrowserPrevious');
    var clNext = document.getElementById('clContentBrowserNext');
    var clPaging = document.getElementById('clContentBrowserPaging');
    
    if (PageNumber != 1)
        clPrevious.innerHTML = '<a href="javascript:ChangeSearch(\'Page\', \'' + ((PageNumber*1)-1) + '\')"><img src="' + jsImagePath + 'Content/previousBtn.jpg" border="0" /></a>';
    else
        clPrevious.innerHTML = '<img src="' + jsImagePath + 'Content/previousBtn_dis.jpg" />';
        
    if (PageNumber != TotalPages)
        clNext.innerHTML = '<a href="javascript:ChangeSearch(\'Page\', \'' + ((PageNumber*1)+1) + '\')"><img src="' + jsImagePath + 'Content/nextBtn.jpg" border="0" /></a>';
    else
        clNext.innerHTML = '<img src="' + jsImagePath + 'Content/nextBtn_dis.jpg" />';

    clPaging.innerHTML = BuildSearchListPagesList(TotalPages, PageNumber, 3, "...&nbsp;", "&nbsp;", 'test')
    var clTotals = document.getElementById('clPagingTotals');
    clTotals.innerHTML = 'Showing&nbsp;<span class="ContentBrowserPageTotalsNumbers">' + StartRecord + '</span>-<span class="ContentBrowserPageTotalsNumbers">' + EndRecord + '</span>&nbsp;of&nbsp;<span class="ContentBrowserPageTotalsNumbers">' + TotalRecords + '</span>';
}


function BuildSearchListPagesList(TotalPages, CurrentPage, EitherSide, Gap, Spacer)
{
        
    var p = AddSearchListPage(1, CurrentPage) + Spacer;
       
    
    if (TotalPages <= (EitherSide+5))
    {
        //1, 2, 3, 4, 5
        for (i=2; i<TotalPages; i++)
            p+= AddSearchListPage(i, CurrentPage) + Spacer;
    }
    else
    {
        if (CurrentPage < (EitherSide+3))
        {
            //1, 2, 3, 4 ... 10
            
            for (i=2; i<(EitherSide+4); i++)
                p+= AddSearchListPage(i, CurrentPage) + Spacer;
            if (CurrentPage == (EitherSide+3)) 
            {
                for (x=1; x<=EitherSide; x++)
                    p+= AddSearchListPage((EitherSide+x+3), CurrentPage) + Spacer;
            }
            p+= Gap;
        }
        else if (CurrentPage > (TotalPages-(EitherSide+2)))
        {
            //1...7, 8, 9, 10
            p+= Gap;
            if (CurrentPage == (TotalPages-(EitherSide+2))) 
            {
                for (x=1; x<=EitherSide; x++)
                    p+= AddSearchListPage((TotalPages-(EitherSide+(5-x))), CurrentPage) + Spacer;
            }
            for (i=TotalPages-(EitherSide+2); i<TotalPages; i++)
                p+= AddSearchListPage(i, CurrentPage) + Spacer;
        }
        else
        {
            //1...3, 4, 5...10
            p+= Gap;
            for (i=CurrentPage-EitherSide; i<((CurrentPage*1)+(EitherSide+1)); i++)
                p+= AddSearchListPage(i, CurrentPage) + Spacer;
                
            p+= Gap;
        }
    }
    if (TotalPages != 1) p+= AddSearchListPage(TotalPages, CurrentPage) + Spacer;
    return p
    
}

function AddSearchListPage(no, currentpage)
{
    if (no == currentpage)
        return '<span class="ProductPagingSelected">' + no + '</span>';
    else
        return '<a href="Javascript:ChangeSearch(\'Page\', \'' + no  + '\')">' + no + '</a>';
}

function LoadSearchResults(doc)
{
    //alert(doc);
    var x = GetXMLObject(doc).childNodes[0];
    
    var StartRecord = x.getAttribute("StartRecord");
    var EndRecord = x.getAttribute("EndRecord");
    var PageNumber = x.getAttribute("PageNumber");
    var PageSize = x.getAttribute("PageSize");
    var TotalRecords = x.getAttribute("TotalRecords");
    var TotalPages = x.getAttribute("TotalPages");
    var StartRecord = x.getAttribute("StartRecord");
    var EndRecord = x.getAttribute("EndRecord");
    
    var search = getInnerText(x.childNodes[0]);
    
    document.getElementById('clSearchResultsSummary').innerHTML = 'Your search for \'<b>' + search + '</b>\' returned <b>' + TotalRecords + '</b> results.';
    
    BuildSearchPaging(PageNumber, TotalPages, TotalRecords, StartRecord, EndRecord);

    var Sizes = [12, 24, 36];
    var s = '';
    if (FilterMode == 'drop')
        s = '<select onchange="ChangeSearch(\'PageSize\', this.value);">';

    for (var i=0; i<Sizes.length; i++)
    {
        if ((1*Sizes[i]) == (1*ContentPageSize))
        {
            if (FilterMode == 'drop')
                s += '<option value="' + ContentPageSize + '" selected="selected">' + ContentPageSize + '</option>';
            else
                s += '<span class="RefineSearchSelectedItem">' + ContentPageSize + '</span>' + FilterSpacer;
            ContentPageSize = ContentPageSize;
        }
        else
        {
            
            if (FilterMode == 'drop')
                s += '<option value="' + Sizes[i] + '">' + Sizes[i] + '</option>';
            else
                s += '<a href="javascript:ChangeSearch(\'PageSize\', \'' + Sizes[i] + '\')">' + Sizes[i] + '</a>' + FilterSpacer;
        }
    }
    if (FilterMode == 'drop')
        s += '</select>';
    else
    {
        if (s.substr(s.length-FilterSpacer.length)) s = s.substr(0, (s.length-FilterSpacer.length));
    }
    document.getElementById('clContentPageSize').innerHTML = s;

    var tbl = document.getElementById('tblResults');
    for (r = tbl.rows.length-1; r>=0; r--)
        tbl.deleteRow(r);
        
    for (var i=0; i<x.childNodes[1].childNodes.length; i++)
    {
        var row = tbl.insertRow(tbl.rows.length);
        var cell = row.insertCell(0);
        cell.innerHTML = '<img src="' + jsImagePath + 'Content/line.png" style="height:1px; width:100%">';
        cell.style.paddingTop = '10px';
        cell.style.paddingBottom = '10px';
        row = tbl.insertRow(tbl.rows.length);
        cell = row.insertCell(0);
        var title = getInnerText(x.childNodes[1].childNodes[i].childNodes[0]);
        var path = getInnerText(x.childNodes[1].childNodes[i].childNodes[1]);
        var desc = getInnerText(x.childNodes[1].childNodes[i].childNodes[2]);
        var h = '<table style="width:100%"><tr><td style="padding-bottom:5px">'
        h += '<b><a href="' + path + '">' + title + '</a></b>';
        h += '</td></tr><tr><td>' + desc + '</td></tr></table>';
        cell.innerHTML = h;
       
    }
}

function ChangeSearch(field, newvalue)
{
    switch (field.toLowerCase())
    {
        case 'page':
            ContentPageNumber = newvalue;
            break;
        case 'pagesize':
            ContentPageSize = newvalue;
            ContentPageNumber = 1;
            break;
    }
    GetSearchResults();
}

function LoadNewsletterWidgetFilled(doc)
{
    var x = GetXMLObject(doc).childNodes[0];
    var ControlID = x.getAttribute('WidgetControlID');
    var res = x.getAttribute('res');
    var tbl = document.getElementById('tblNewsletterSignup' + ControlID)
    var div = document.getElementById('divNewsletterSignupDone' + ControlID)
    
    if (res == 'Done')
    {
        div.innerHTML = getInnerText(x);
        tbl.style.display = 'none';
        div.style.display = 'block';
        StartWidgetSlide(ControlID);
    }
    else
    {
        alertDHTML('NewsletterAlreadySignedUp');
    }
}

function loadArchiveNews(ns)
{
    n = ns.split('|||||');
    document.getElementById(n[0]).innerHTML = n[1]; 
}

function loadNews(ns)
{
    n = ns.split('|||||');
    
    document.getElementById('clNews' + n[0]).innerHTML = n[2]; 
    
    if (n[1] == 'full')
        document.getElementById('imgNews' + n[0]).src = '/siteimages/faq_minus.gif'
    else
    {
        document.getElementById('imgNews' + n[0]).src = '/siteimages/faq_plus.gif'
        document.getElementById('clNews' + n[0]).innerHTML = '<p>' + document.getElementById('clNews' + n[0]).innerHTML + '</p>'
    } 
}

function CopyAdd(src, dest)
{
    SetVal(src, dest, 'Add1');
    SetVal(src, dest, 'Add2');
    SetVal(src, dest, 'Add3');
    SetVal(src, dest, 'Add4');
    SetVal(src, dest, 'PostCode');
}

function ShowFAQ(id, l)
{
    var open=true;
    if (document.getElementById('FAQ' + id).style.display == 'block')
        open=false;
       
    ls = l.split(',');
    for (i=0; i<ls.length-1; i++)
    {
        document.getElementById('FAQ' + ls[i]).style.display = 'none';
        document.getElementById('imgFaq' + ls[i]).src = '/siteimages/faq_plus.gif';
    }
         
    if (open)
    {   
        document.getElementById('FAQ' + id).style.display = 'block';
        document.getElementById('imgFaq' + id).src = '/siteimages/faq_minus.gif';
    }
}

function ShowNews(newsid, nodeid, lnews, lnode)
{  
     
    var wasopen = false
    if (document.getElementById('imgNews' + newsid).src.indexOf('faq_plus.gif') == -1)
        wasopen = true;
    
    lsO = lnode.split(',');
    lsE = lnews.split(',');
    
    for (i=0; i<lsE.length-1; i++)
    {
        if (document.getElementById('imgNews' + lsE[i]).src.indexOf('faq_plus.gif') == -1)
        {
            //Call Summary Info for ls[i] and close it, as it is open
            document.getElementById('imgNews' + lsE[i]).src = '/siteimages/faq_plus.gif';
            sndReq('/XML/GetNews.aspx?Type=summary&NewsID=' + lsE[i] + '&NodeID=' + lsO[i]);      
        }
    }
    
    if (!wasopen)
    {
       document.getElementById('imgNews' + newsid).src == '/siteimages/faq_plus.gif'
       document.getElementById('clNews' + newsid).innerHTML = '<img src="' + jsImagePath + 'loading.gif">'
       sndReq('/XML/GetNews.aspx?Type=full&NewsID=' + newsid + '&NodeID=' + nodeid); 
       
    }
}

function ShowArchiveNews(cl, ap)
{
    document.getElementById(cl).innerHTML = '<img src="' + jsImagePath + 'loading.gif">'
    sndReq('/XML/GetArchiveNews.aspx?Cell=' + cl + '&AP=' + ap); 
}

function ShowHideLeftNav(id)
{
    if (document.getElementById('divLeftNav' + id).style.display == 'block')
    {
        document.getElementById('imgMasterCatImg' + id).src = '/siteimages/leftnav/arrow_down.gif';
        document.getElementById('divLeftNav' + id).style.display = 'none'
    }
    else
    {
        document.getElementById('imgMasterCatImg' + id).src = '/siteimages/leftnav/arrow_up.gif';
        document.getElementById('divLeftNav' + id).style.display = 'block';
    }
}

function ShowAllLeftNav(ids)
{
    arr = ids.split(',');
    for (i=0; i<arr.length-1; i++)
    {
        document.getElementById('imgMasterCatImg' + arr[i]).src = '/siteimages/leftnav/arrow_up.gif';
        document.getElementById('divLeftNav' + arr[i]).style.display = 'block';
    }     
}

function NewsletterSignup(firstname, surname, email)
{
    sndReq('/Newsletter/Signup.aspx?f=' + firstname + '&s=' + surname + '&e=' + email);
}

function newsLetterComplete(v)
{
    window.document.hp.SetVariable("newsletter", v);
}

function SubmitContactForm(frm)
{
    
    document.getElementById(frm + '_txtEmail').className = 'TextFormEntry';
    
    IsPageValid = validateEmail(document.getElementById(frm + '_txtEmail').value, 'Email address', frm + '_clEmailValidate')
    if (!IsPageValid) document.getElementById(frm + '_txtEmail').className = 'TextFormEntryInvalid';
    checkTextBoxIsValid(frm + '_txtName', 'Name', frm + '_clNameValidate')
    checkTextBoxIsValid(frm + '_txtComments', 'Message', frm + '_clCommentsValidate')
    
    if (IsPageValid)
    {
        var Name = document.getElementById(frm + '_txtName').value;
        var Address = document.getElementById(frm + '_txtAddress').value;
        var Pcode = document.getElementById(frm + '_txtPostCode').value;
        var Tel = document.getElementById(frm + '_txtTelephone').value;
        var Email = document.getElementById(frm + '_txtEmail').value;
        var Comments = document.getElementById(frm + '_txtComments').value;
        Comments = doReplace(Comments, '?', '%%questionmark%%');
        Comments = doReplace(Comments, '&', '%%ampersand%%');
        Address = doReplace(Address, '?', '%%questionmark%%');
        Address = doReplace(Address, '&', '%%ampersand%%');
        
        sndReq('/XML/SubmitContactForm.aspx?Form=' + frm + 
                                          '&Name=' + Name + 
                                          '&Address=' + Address + 
                                          '&PCode=' + Pcode + 
                                          '&Tel=' + Tel + 
                                          '&Email=' + Email + 
                                          '&Comments=' + Comments);
                                          
                                          
        document.getElementById(frm + '_txtName').value = '';
        document.getElementById(frm + '_txtAddress').value = '';
        document.getElementById(frm + '_txtPostCode').value = '';
        document.getElementById(frm + '_txtTelephone').value = '';
        document.getElementById(frm + '_txtEmail').value = '';
        document.getElementById(frm + '_txtComments').value = '';
    }
}

function SubmitNewsletterForm(frm)
{
    var FirstName = document.getElementById(frm + '_txtFirstName').value;
    var Surname = document.getElementById(frm + '_txtSurname').value;
    var Email = document.getElementById(frm + '_txtNewsletterEmail').value;
    
    var FirstNameValid = validateText(FirstName, 'firstname', frm + '_clFirstNameValidate');
    var SurNameValid = validateText(Surname, 'surname', frm + '_clSurnameValidate');
    var EmailValid = validateEmail(Email, 'email', frm + '_clNewsletterEmailValidate');
    
    if (FirstNameValid && SurNameValid && EmailValid)
        sndReq('/Newsletter/SignUp.aspx?Form=' + frm + '&f=' + FirstName + '&s=' + Surname + '&e=' + Email);
}

function CompletedSignUpForm(txt)
{
    var r = txt.split('|');
    frm = r[0];
    val = r[1];
    
    if (val == 'true')
    {
        document.getElementById(frm + '_msgNewsletterCompleted').style.display = 'block';
        document.getElementById(frm + '_FormNewsletter').style.display = 'none';
    }
    else
        document.getElementById(frm + '_clNewsletterEmailValidate').innerHTML = 'This email address is already signed up.'   
}

function CompletedContactUsForm(frm)
{
    document.getElementById(frm + '_msgCompleted').style.display = 'block';
    document.getElementById(frm + '_FormContact').style.display = 'none';
}

function CheckOtherTitleSelectedWidget(id)
{
    var txt = document.getElementById(id + 'txt')
    if (document.getElementById(id + 'drp').value == 'Other')
        txt.style.visibility='visible'
    else
        txt.style.visibility='hidden'
    
}

function CheckOtherTitleSelected(typ, cid)
{
    var txt = document.getElementById(cid + 'txt' + typ + 'Title')
    if (document.getElementById(cid + 'drp' + typ + 'Title').value == 'Other')
        txt.style.visibility='visible';
    else
        txt.style.visibility='hidden';
    
}

function checkEmailAddressIsValidGeneric(txtid, fieldName, validationCell)
{
    var Email = document.getElementById(txtid).value; 
    
    var val = validateEmail(Email, fieldName, validationCell);
    if (val)
        document.getElementById(txtid).className = 'TextFormEntry';
    else
        document.getElementById(txtid).className = 'TextFormEntryInvalid';
        
    if (IsPageValid)
        IsPageValid = val;
}

function checkEmailAddressIsValid(txtid, cid)
{
    var Email = document.getElementById(txtid).value;     
    if (!validateEmail(Email, 'Email address', 'clValCusEmail'))
    {
        val = false;
        document.getElementById(txtid).className = 'TextFormEntryInvalid';
    }
    else
    {
        //Need to validate email address is not used
        sndReq('/XML/ValidateEmailAddress.aspx?Email=' + Email + '&CustomerID=' + cid + '&TextBox=' + txtid + '&ValidationCell=clValCusEmail');
    }
}

function ConfirmEmailAddressValid(res)
{
    var a = res.split('|||');
    var cl = document.getElementById(a[1]);
    var txt = document.getElementById(a[2]);
    if (a[0] == '0')
    {
        cl.innerHTML = 'This email address already exists.';
        txt.className = 'TextFormEntryInvalid';
        IsPageValid = false;
    }
    else
    {
        cl.innerHTML = '&nbsp;';
        txt.className = 'TextFormEntry';
    }
}

function MeetsPasswordRules(pwd)
{
    if (pwd == '')
        return false;
    else
        return true;
}

function checkFirstPasswordIsValid(txt, isRequired)
{
    var txtbox = document.getElementById(txt);
    var cl = document.getElementById('clValCusPassword');
    txtbox.className = 'TextFormEntry';
    cl.innerHTML = '&nbsp;';
    if (isRequired == 'true')
    {
        if (!MeetsPasswordRules(txtbox.value))
        {
            cl.innerHTML = 'Password is invalid.';
            txtbox.className = 'TextFormEntryInvalid';
            IsPageValid = false;
        }
    }
}


function checkConfirmPasswordIsValid(txtp, txtc)
{
    var p = document.getElementById(txtp);
    var c = document.getElementById(txtc);
    var cl = document.getElementById('clValCusConfirm');
    c.className = 'TextFormEntry';
    cl.innerHTML = '&nbsp;';
    if (p.value != c.value)
    {
        cl.innerHTML = 'Passwords do not match.';
        c.className = 'TextFormEntryInvalid';
        IsPageValid = false;
    }
}

function PasswordReminder()
{
    //window.open('/Account/PasswordReminder.aspx');
    document.getElementById('divPasswordReminderMessage').innerHTML = '';
    document.getElementById('divPasswordReminderSendButton').style.display = 'block';
    document.getElementById('divPasswordReminderCloseButton').style.display = 'none';
    document.getElementById('divPasswordReminderForm').style.display = 'block';
    document.getElementById('divPasswordReminderComplete').style.display = 'none';
    initMask();
    StartMask('divPasswordReminder')
}

function SendReminder()
{
    sndReq('/XML/SendPasswordReminder.aspx?Email=' + document.getElementById('txtPasswordReminderEmail').value);
}

function PasswordReminderSubmitted(doc)
{
    var sp = doc.split('|||');
    if (sp[0] == 'true')
    {
        document.getElementById('divPasswordReminderMessage').style.display = 'none';
        document.getElementById('txtPasswordReminderEmail').value = '';
        document.getElementById('divPasswordReminderSendButton').style.display = 'none';
        document.getElementById('divPasswordReminderCloseButton').style.display = 'block';
        document.getElementById('divPasswordReminderForm').style.display = 'none';
        document.getElementById('divPasswordReminderComplete').style.display = 'block';
        document.getElementById('divPasswordReminderComplete').innerHTML = sp[1];
    }
    else
    {
        document.getElementById('divPasswordReminderMessage').innerHTML = sp[1];
    }
}

function RecommendToFriend(ProductName, URL)
{
    document.getElementById('clTAFTitle').innerHTML = 'Tell&nbsp;a&nbsp;friend:&nbsp;' + ProductName;
    document.getElementById('txtTAFSubject').value = ProductName;
    TAFProductName = ProductName;
    TAFURL = URL;
    initMask();
    StartMask('divTellAFriend');
}

function SubmitTAF()
{
    IsPageValid = true;
    checkTextBoxIsValid('txtTAFYourName', 'name', 'clValYourName');
    checkEmailAddressIsValidGeneric('txtTAFYourEmail', 'Email address', 'clValYourEmail');

    checkTextBoxIsValid('txtTAFFriendName', 'name', 'clValFriendName');
    checkEmailAddressIsValidGeneric('txtTAFFriendEmail', 'Email address', 'clValFriendEmail');

    checkTextBoxIsValid('txtTAFSubject', 'subject', 'clValTAFSubject');
    checkTextBoxIsValid('txtTAFComments', 'comment', 'clValTAFComments');
    
    if (IsPageValid)
    {
        CancelTAF();
        sndReq('/XML/SendRecommendation.aspx?YourName=' + document.getElementById('txtTAFYourName').value +
        '&YourEmail=' + document.getElementById('txtTAFYourEmail').value +
        '&FriendName=' + document.getElementById('txtTAFFriendName').value +
        '&FriendEmail=' + document.getElementById('txtTAFFriendEmail').value +
        '&Subject=' + document.getElementById('txtTAFSubject').value +
        '&Comments=' + doReplace(document.getElementById('txtTAFComments').value, '&', '[ampis]') + 
        '&URL=' + TAFURL +
        '&ProductName=' + TAFProductName);
        
        document.getElementById('txtTAFFriendName').value = '';
        document.getElementById('txtTAFFriendEmail').value = '';
        document.getElementById('txtTAFSubject').value = '';
        document.getElementById('txtTAFComments').value = '';
    }
}

function SendFeedback()
{
    if (document.getElementById('txtFeedbackComments').value == '')
    {
        alertDHTML('ContactUsMessageSendingErrorNoComment');
    }
    else
    {
        sndReq('/XML/SendFeedback.aspx?Comments=' + document.getElementById('txtFeedbackComments').value + '&SendCopy=' + document.getElementById('chkSendCopy').checked);
        document.getElementById('txtFeedbackComments').value = '';
    }

}

function ChangePage(lnk)
{
    //alert(lnk);
    //window.location.href.assign(lnk) 


    location.href = lnk;
    return false;
}

var searchBoxStartText = 'search our site...';

function searchBox_click(cntrl)
{
    if (cntrl.value == searchBoxStartText) cntrl.value = '';
}

function searchBox_blur(cntrl)
{
    if (cntrl.value == '') cntrl.value = searchBoxStartText;
}

function searchBox_keypress(txt, ev)
{
    if (ev.keyCode==13) 
    {
        ev.returnValue=false;
        ev.cancel = true;
        doWidgetSearch();
    }
}

function doWidgetSearch()
{
    var cntrl = document.getElementById('txtWidgetSearch');
    var tst = document.getElementById('clSearchResultsSummary');
    if (tst)
    {
        SearchTerm  = cntrl.value;
        ContentPageNumber = 1;
        GetSearchResults();
    }
    else
    {
        if ((cntrl.value != searchBoxStartText) && (cntrl.value != ''))
            document.location = '/Search.aspx?search=' + cntrl.value;
        else
            cntrl.value = searchBoxStartText;
    }
}