/***********************************************
* PropertyADD Javascript
* © Addactive Limited 2008, All Rights Reserved
* Visit www.propertyadd.com for further information
***********************************************/

var rootUrl='/contact/';

var signupReq;
var quoteReq;

if (GetQS('referrer') != '') {
    SetCookie('referrer', GetQS('referrer'))
}

if (document.referrer != '') {
    if (GetCookie('referrerpage')=='') {
        SetCookie('referrerpage', document.referrer)
    }
}

//----------------------------------------------
// Misc functions
//----------------------------------------------

function SetFavourite() {
    window.external.AddFavorite("http://www.propertyadd.com/","PropertyADD Estate Agency Software");
}

//----------------------------------------------

function GetQS(variable) { 

    var query = window.location.search.substring(1); 
    var vars = query.split("&"); 
    for (var i=0;i<vars.length;i++) { 
        var pair = vars[i].split("="); 
        if (pair[0] == variable) { 
            return pair[1]; 
        } 
    } 
    return '';
} 

//----------------------------------------------
// Form validation functions
//----------------------------------------------

function checkField(field) {

    if (!ok) return;

    switch (document.getElementById(field).type) {

        case 'checkbox' :
            if (! document.getElementById(field).checked) {
                ok=false;
            }

            break;

        default :
            if (document.getElementById(field).value == '') {
                ok=false;
            }
    }

    if (! ok) {
        alert('You must complete the ' + field);
    }

}

//----------------------------------------------

function checkFieldIsNumeric(field) {

    if (!ok) return;

    var validChars="0123456789";
    var c;
    var value=document.getElementById(field).value;

    if (value.length == 0) return false;

    for (i=0; i<value.length && ok == true; i++) {
        c=value.charAt(i);
        if (validChars.indexOf(c) == -1) {
            ok=false;
        }
    }

    if (! ok) {
        alert(field + ' must be numeric');
    }

}

//----------------------------------------------

function checkEmailField(field) {

    if (!ok) return;

    var email=document.getElementById(field).value;

    var at="@";
    var dot=".";
    var lat=email.indexOf(at);
    var lstr=email.length;
    var ldot=email.indexOf(dot);

    if (email.indexOf(at)==-1){
        ok=false;
    }

    if (email.indexOf(at)==-1 || email.indexOf(at)==0 || email.indexOf(at)==lstr){
        ok=false;
    }

    if (email.indexOf(dot)==-1 || email.indexOf(dot)==0 || email.indexOf(dot)==lstr){
        ok=false;
    }

    if (email.indexOf(at,(lat+1))!=-1){
        ok=false;
    }

    if (email.substring(lat-1,lat)==dot || email.substring(lat+1,lat+2)==dot){
        ok=false;
    }

    if (email.indexOf(dot,(lat+2))==-1){
        ok=false;
    }
    
    if (email.indexOf(" ")!=-1){
        ok=false;
    }

    if (! ok) {
        alert(field + ' must be a valid email address');
    }

}

//----------------------------------------------
// Cookie functions
//----------------------------------------------

function SetCookie(name, value) {

    var exDate=new Date();
    exDate.setDate(exDate.getDate()+365);
    document.cookie=name + "=" + escape(value) + ";path=;expires=" + exDate.toGMTString();

}

//----------------------------------------------

function GetCookie(name) {

    if (document.cookie.length>0) {
        start=document.cookie.indexOf(name + "=");
        if (start!=-1) { 
            start=start + name.length+1; 
            end=document.cookie.indexOf(";",start);
            if (end==-1) end=document.cookie.length;
            return unescape(document.cookie.substring(start,end));
        } 
    }
    return "";

}

//----------------------------------------------
// AJAX core functions
//----------------------------------------------

function GetAJAXRequest(url, handler) {

    req = false;

    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest && !(window.ActiveXObject)) {
        try {
            req = new XMLHttpRequest();
        } catch(e) {
            req = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
        try {
            req = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
            try {
                req = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e) {
                req = false;
            }
        }
    }

    if(req) {
        req.onreadystatechange = handler;
        req.open("GET", url, true);
        req.send("");
    }

    return req;

}

//----------------------------------------------
// AJAX implementations
//----------------------------------------------

function DoSignup() {

    var url;

    DoConversion("Goal/EmailSignup");
    SetCookie("fromemail", document.getElementById('email address').value);

    url=rootUrl + '/contact-ajaxcreate.aspx?method=signup';
    url=url + '&firstname=' + escape(document.getElementById('first name').value);
    url=url + '&surname=' + escape(document.getElementById('surname').value);
    url=url + '&email=' + escape(document.getElementById('email address').value);
    url=url + '&referrer=' + escape(GetCookie('referrer'));
    url=url + '&referrerpage=' + escape(GetCookie('referrerpage'));

    signupReq=GetAJAXRequest(url, CreateSignup)

}

//----------------------------------------------

function DoWhitePaperSignup() {

    var url;

    DoConversion("Goal/WhitePaperSignup");
    SetCookie("fromemail", document.getElementById('email address').value);

    url=rootUrl + '/contact-ajaxcreate.aspx?method=contactus';
    url=url + '&companyname=' + escape(document.getElementById('company name').value);
    url=url + '&title=' + escape(document.getElementById('title').options[document.getElementById('title').selectedIndex].value);
    url=url + '&firstname=' + escape(document.getElementById('first name').value);
    url=url + '&surname=' + escape(document.getElementById('surname').value);
    url=url + '&jobtitle=' + escape(document.getElementById('job title').value);
    url=url + '&companyphone=' + escape(document.getElementById('phone number').value);
    url=url + '&email=' + escape(document.getElementById('email address').value);
    url=url + '&buildingname=' + escape(document.getElementById('building name').value);
    url=url + '&line1=' + escape(document.getElementById('address line 1').value);
    url=url + '&line2=' + escape(document.getElementById('address line 2').value);
    url=url + '&line3=' + escape(document.getElementById('address line 3').value);
    url=url + '&town=' + escape(document.getElementById('town').value);
    url=url + '&county=' + escape(document.getElementById('county').value);
    url=url + '&postcode=' + escape(document.getElementById('postcode').value);
    url=url + '&referrer=whitepaper';
    url=url + '&referrerpage=' + escape(GetCookie('referrerpage'));

    signupReq=GetAJAXRequest(url, CreateSignup)

}

//----------------------------------------------

function CreateSignup() {

    if (signupReq) {
        if (signupReq.readyState == 4 && signupReq.status == 200) {
        }
    }
}

//----------------------------------------------

function DoContactUs() {

    var url;

    DoConversion("Goal/ContactUs");
    SetCookie("fromemail", document.getElementById('email address').value);

    url=rootUrl + '/contact-ajaxcreate.aspx?method=contactus';
    url=url + '&companyname=' + escape(document.getElementById('company name').value);
    url=url + '&companyphone=' + escape(document.getElementById('company phone number').value);
    url=url + '&firstname=' + escape(document.getElementById('first name').value);
    url=url + '&surname=' + escape(document.getElementById('surname').value);
    url=url + '&email=' + escape(document.getElementById('email address').value);
    url=url + '&comments=' + escape(document.getElementById('comments').value.replace(/\n/g, "<br>"));
    url=url + '&referrer=' + escape(GetCookie('referrer'));
    url=url + '&referrerpage=' + escape(GetCookie('referrerpage'));

    signupReq=GetAJAXRequest(url, ConfirmContactUs)

}

//----------------------------------------------

function ConfirmContactUs() {

    if (signupReq) {
        if (signupReq.readyState == 4 && signupReq.status == 200) {
        }
    }
}

//----------------------------------------------

function DoArrangeDemo() {

    var url;

    DoConversion("Goal/ArrangeDemo");
    SetCookie("fromemail", document.getElementById('email address').value);

    url=rootUrl + '/contact-ajaxcreate.aspx?method=arrangedemo';
    url=url + '&companyname=' + escape(document.getElementById('company name').value);
    url=url + '&companyphone=' + escape(document.getElementById('company phone number').value);
    url=url + '&firstname=' + escape(document.getElementById('first name').value);
    url=url + '&surname=' + escape(document.getElementById('surname').value);
    url=url + '&email=' + escape(document.getElementById('email address').value);
    url=url + '&comments=' + escape(document.getElementById('comments').value.replace(/\n/g, "<br>"));
    url=url + '&referrer=' + escape(GetCookie('referrer'));
    url=url + '&referrerpage=' + escape(GetCookie('referrerpage'));

    signupReq=GetAJAXRequest(url, ConfirmDemo)

}

//----------------------------------------------

function ConfirmDemo() {

    if (signupReq) {
        if (signupReq.readyState == 4 && signupReq.status == 200) {
        }
    }
}

//----------------------------------------------

function DoConfirm() {

    var email=GetQS('email');
    var url;

    if (email != '') {
        url=rootUrl + '/contact-ajaxconfirm.aspx?email=';
        url=url + email;
        document.getElementById('message').innerHTML='Thank you for confirming your email address as ' + email + '.';
        signupReq=GetAJAXRequest(url, ConfirmSignup)
    } else {
        document.getElementById('message').innerHTML='We were unable to verify your email address. Please call us on 0845 388 2394.'; 
    }

}

//----------------------------------------------

function ConfirmSignup() {

    if (signupReq) {
        if (signupReq.readyState == 4 && signupReq.status == 200) {
        }
    }
}

//----------------------------------------------

function DoMatchSignup() {

    var url;

    DoConversion("Goal/MatchSignup");
    SetCookie("fromemail", document.getElementById('company email').value);

    url=rootUrl + '/contact-ajaxcreate.aspx?method=pamatchaccount';

    url=url + '&companyname=' + escape(document.getElementById('company name').value);
    url=url + '&companyphone=' + escape(document.getElementById('company phone number').value);
    url=url + '&companyfax=' + escape(document.getElementById('company fax').value);
    url=url + '&companywebsite=' + escape(document.getElementById('company website').value);
    url=url + '&companyemail=' + escape(document.getElementById('company email').value);
    url=url + '&title=' + escape(document.getElementById('title').options[document.getElementById('title').selectedIndex].value);
    url=url + '&firstname=' + escape(document.getElementById('first name').value);
    url=url + '&surname=' + escape(document.getElementById('surname').value);
    url=url + '&jobtitle=' + escape(document.getElementById('job title').value);
    url=url + '&email=' + escape(document.getElementById('user email').value);
    url=url + '&buildingname=' + escape(document.getElementById('building name').value);
    url=url + '&line1=' + escape(document.getElementById('address line 1').value);
    url=url + '&line2=' + escape(document.getElementById('address line 2').value);
    url=url + '&line3=' + escape(document.getElementById('address line 3').value);
    url=url + '&town=' + escape(document.getElementById('town').value);
    url=url + '&county=' + escape(document.getElementById('county').value);
    url=url + '&postcode=' + escape(document.getElementById('postcode').value);
    url=url + '&referrer=' + escape(GetCookie('referrer'));
    url=url + '&referrerpage=' + escape(GetCookie('referrerpage'));

    signupReq=GetAJAXRequest(url, CreateMatchSignup);

}

//----------------------------------------------

function CreateMatchSignup() {

    if (signupReq) {
        if (signupReq.readyState == 4 && signupReq.status == 200) {
        }
    }
}

//----------------------------------------------

function GetQuote() {

    var url;

    DoConversion("Goal/QuoteRequest");
    url=rootUrl + '/product-ajaxquote.aspx?product=propertyadd';

    url=url + '&users=' + escape(document.getElementById('staff').value);
    url=url + '&modules=' + escape(document.getElementById('modules').options[document.getElementById('modules').selectedIndex].value);
    url=url + '&version=' + escape(document.getElementById('version').options[document.getElementById('version').selectedIndex].value);
    url=url + '&hosting=' + escape(document.getElementById('hosting').checked);
    url=url + '&email=' + escape(document.getElementById('email').value);
    url=url + '&companyphone=' + escape(document.getElementById('companyphone').value);
    url=url + '&from=' + escape(GetCookie('fromemail'));
    url=url + '&referrer=' + escape(GetCookie('referrer'));
    url=url + '&referrerpage=' + escape(GetCookie('referrerpage'));

    document.getElementById('quote').innerHTML='Calculating quote..';

    document.getElementById('quote').style.display='block';
    document.getElementById('quote').style.visibility='';

    quoteReq=GetAJAXRequest(url, DisplayQuote)

}

//----------------------------------------------

function DisplayQuote() {

    if (quoteReq) {
        if (quoteReq.readyState == 4 && quoteReq.status == 200) {
            document.getElementById('quote').innerHTML=quoteReq.responseText;
        }
    }
}

//----------------------------------------------
