function Shortlist()
{
}

Shortlist.prototype.languageIdHidden = null;
Shortlist.prototype.backToSearchResultsButton = null;
Shortlist.prototype.compareSelectedButton = null;
Shortlist.prototype.printSelectedButton = null;
Shortlist.prototype.removeSelectedButton = null;
Shortlist.prototype.emailSelectedButton = null;
Shortlist.prototype.enquireAboutSelectedButton = null;
Shortlist.prototype.selectedVehicle = null;
Shortlist.prototype.sendEmailButton = null;
Shortlist.prototype.emailToTextbox = null;
Shortlist.prototype.emailFromTextbox = null;

Shortlist.getClassInstance = function(controlId)
{
    
    var control = document.getElementById(controlId);
    
    if (control != null && control.classInstance == null)
    {
        var inst = new Shortlist();
        
        inst.languageIdHidden = document.getElementById(control.getAttribute("languageIdHiddenControlId"));                
        inst.backToSearchResultsButton = document.getElementById(control.getAttribute("backToSearchResultsButtonControlId"));
        inst.compareSelectedButton = document.getElementById(control.getAttribute("compareSelectedButtonControlId"));
        inst.printSelectedButton = document.getElementById(control.getAttribute("printSelectedButtonControlId"));
        inst.removeSelectedButton = document.getElementById(control.getAttribute("removeSelectedButtonControlId"));
        inst.emailSelectedButton = document.getElementById(control.getAttribute("emailSelectedButtonControlId"));
        inst.enquireAboutSelectedButton = document.getElementById(control.getAttribute("enquireAboutSelectedButtonControlId")); //?
        inst.selectedVehicle = document.getElementById(control.getAttribute("selectedVehicleControlId"));
        inst.sendEmailButton = document.getElementById(control.getAttribute("sendEmailButtonControlId"));
        inst.emailToTextbox = document.getElementById(control.getAttribute("emailToControlId"));
        inst.emailFromTextbox = document.getElementById(control.getAttribute("emailFromControlId"));
        
        control.classInstance = inst;
    }
    
    return control == null ? null : control.classInstance;
}

Shortlist.backToSearchResultsClick = function(controlId, controlName)
{
    var inst = Shortlist.getClassInstance(controlId);
    
    if (inst != null && inst.backToSearchResultsButton != null)
    {
        Utils.createSubmitHidden(Utils.getForm(), controlName, inst.backToSearchResultsButton.name);
        Utils.getForm().submit();
    }
}

Shortlist.compareSelectedButtonClick = function(controlId, controlName)
{
    var inst = Shortlist.getClassInstance(controlId);
    
    var vehicleCheckboxes = document.getElementsByName(inst.selectedVehicle.name);
        
    var checkedCount = 0;
    
    for (var i = 0; i < vehicleCheckboxes.length; i++)
    {
        if (vehicleCheckboxes[i].checked)
        {
            checkedCount++;
        }
    }
    
    if(checkedCount > 3)
    {
        var compareErrorMsg = document.getElementById("compareSelectError").value;
        alert(compareErrorMsg);
        return;
    }
    
    if (inst != null && inst.compareSelectedButton != null)
    {
        Utils.createSubmitHidden(Utils.getForm(), controlName, inst.compareSelectedButton.name);
        Utils.getForm().submit();
    }
}

Shortlist.removeSelectedButtonClick = function(controlId, controlName)
{
    var inst = Shortlist.getClassInstance(controlId);
    
    if (inst != null && inst.removeSelectedButton != null)
    {
        Utils.createSubmitHidden(Utils.getForm(), controlName, inst.removeSelectedButton.name);
        Utils.getForm().submit();
    }    
}

Shortlist.checkEmailValid = function(controlId, eventSource)
{
    var inst = Shortlist.getClassInstance(controlId);
    
    var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    
    if((eventSource.value != "") && (!filter.test(eventSource.value)))
    {
        if(eventSource.id = inst.emailToTextbox.id)
        {
            var errorMsg = document.getElementById("emailToErrorMsg").value;            
        }
        else
        {
            var errorMsg = document.getElementById("emailFromErrorMsg").value;
        }
        
        alert(errorMsg);
        eventSource.value = "";
        eventSource.focus();
        return;
    }   
}

Shortlist.sendEmailButtonClick = function(controlId, controlName)
{    
    var inst = Shortlist.getClassInstance(controlId);
    var emailAddressesValid = true;
    
    if(inst.emailToTextbox.value == "")
    {
        var errorMsg = document.getElementById("emailToErrorMsg").value;    
        alert(errorMsg);
        emailAddressesValid = false;
    }
    
    if(inst.emailFromTextbox.value == "")
    {
        var errorMsg = document.getElementById("emailFromErrorMsg").value;
        alert(errorMsg);
        emailAddressesValid = false;
    }
    
    if (emailAddressesValid && inst != null && inst.sendEmailButton != null)
    {
        Utils.createSubmitHidden(Utils.getForm(), controlName, inst.sendEmailButton.name);
        Utils.getForm().submit();
    }    
}

Shortlist.vehicleSelect = function(controlId,controlName,shortlistUrlPrint,shortlistUrlEmail,enquiryFormUrl)
{
    var inst = Shortlist.getClassInstance(controlId);
    var selectedVehicles=GetSelectedVehicles(controlId);
    selectedVehicles='&UsedVehicleID=' + selectedVehicles ;
    
    var vehicleCheckboxes = document.getElementsByName(inst.selectedVehicle.name);
            
    var checkedCount = 0;
    
    for (var i = 0; i < vehicleCheckboxes.length; i++)
    {
        if (vehicleCheckboxes[i].checked)
        {
            checkedCount++;
        }
    }
    
    if(checkedCount > 0)
    {
        if(checkedCount > 1)
        {
            inst.compareSelectedButton.disabled = false;
            inst.compareSelectedButton.href = "javascript:Shortlist.compareSelectedButtonClick('" + controlId + "','" + controlName + "');";
            inst.compareSelectedButton.style.textDecoration="";
            
        }
        else
        {
            inst.compareSelectedButton.disabled = true;
            inst.compareSelectedButton.removeAttribute('href');
            inst.compareSelectedButton.style.textDecoration="none";
        }
        inst.printSelectedButton.disabled = false;
       // inst.printSelectedButton.href = "javascript:Shortlist.actionSelectedVehicles('" + controlId + "','" + shortlistUrlPrint + "');";
        inst.printSelectedButton.href = PrintUrl +  selectedVehicles;
        inst.printSelectedButton.style.textDecoration="";

        inst.removeSelectedButton.disabled = false;
        inst.removeSelectedButton.href = "javascript:Shortlist.removeSelectedButtonClick('" + controlId + "','" + controlName + "');";
        inst.removeSelectedButton.style.textDecoration="";

        inst.emailSelectedButton.disabled = false;
        //inst.emailSelectedButton.href = "javascript:Shortlist.actionSelectedVehicles('" + controlId + "','" + shortlistUrlEmail + "');";
        inst.emailSelectedButton.href =  EmailUrl +  selectedVehicles;
        inst.emailSelectedButton.style.textDecoration="";

        inst.enquireAboutSelectedButton.disabled = false;
        inst.enquireAboutSelectedButton.href = "javascript:Shortlist.actionSelectedVehicles('" + controlId + "','" + enquiryFormUrl + "');";
        inst.enquireAboutSelectedButton.style.textDecoration="";
    }
    else
    {
        inst.compareSelectedButton.disabled = true;
        inst.compareSelectedButton.removeAttribute('href');
        inst.compareSelectedButton.style.textDecoration="none";
        //inst.compareSelectedButton.style.color="#777777";
              
                                                        
        inst.printSelectedButton.disabled = true;
        inst.printSelectedButton.removeAttribute('href');
        inst.printSelectedButton.style.textDecoration="none";
        inst.removeSelectedButton.disabled = true;
        inst.removeSelectedButton.removeAttribute('href');
        inst.removeSelectedButton.style.textDecoration="none";
        inst.emailSelectedButton.disabled = true;
        inst.emailSelectedButton.removeAttribute('href');
        inst.emailSelectedButton.style.textDecoration="none";
        inst.enquireAboutSelectedButton.disabled = true;
        inst.enquireAboutSelectedButton.removeAttribute('href');
        inst.enquireAboutSelectedButton.style.textDecoration="none";
    }
}

function GetSelectedVehicles(controlId)
{
    var inst = Shortlist.getClassInstance(controlId);   
    var vehicleCheckboxes = document.getElementsByName(inst.selectedVehicle.name);
    var selectedVehicles = "";
    
    for (var i = 0; i < vehicleCheckboxes.length; i++)
    {
        if(vehicleCheckboxes[i].checked)
        {
            if(selectedVehicles != "")
            {
                selectedVehicles = selectedVehicles + ",";
            }
            
            selectedVehicles = selectedVehicles + vehicleCheckboxes[i].value;
        }
    }

   return selectedVehicles;
}





Shortlist.actionSelectedVehicles = function(controlId, pageurl)
{    
    
    var selectedVehicles=GetSelectedVehicles(controlId);
    
    if(pageurl.indexOf("default.aspx") != -1)
    {
      
        pageurl = pageurl + "?UsedVehicleID=" + selectedVehicles;        
        popup(pageurl, 'EnquiryForm', 620, 510, 20, 20);
    }
    else
    { 
        
        
        if (pageurl.indexOf("?")<1)
          {
          pageurl = pageurl + "?UsedVehicleID=" + selectedVehicles ;
        
         }
        else
          {
           pageurl = pageurl + "&UsedVehicleID=" + selectedVehicles ;           
          }
        
        if(pageurl.indexOf("print") != -1)
        {
            popup(pageurl, 'VehicleShortlistPrint', 750, 700, 20, 20);
        }
        else
        {
          
            location.href=pageurl;
            //popup(pageurl, 'VehicleShortlistEmail', 750, 555, 20, 20);
        }
    }
    
}

function popup(pageurl, pagetitle, width, height, left, top)
{
	var w = window.open(pageurl, pagetitle, 'left='+left+', top='+top+', width='+width+', height='+height+', scrollbars=yes, toolbar=no', true);
	w.focus();
}



Shortlist.selectedAllButtonClick = function(controlId,controlName,shortlistUrlPrint,shortlistUrlEmail,enquiryFormUrl)
{
    var inst = Shortlist.getClassInstance(controlId);
    var vehicleCheckboxes = document.getElementsByName(inst.selectedVehicle.name);
    
    for (var i = 0; i < vehicleCheckboxes.length; i++)
    {
        vehicleCheckboxes[i].checked = true;
    }    
    
    
     var selectedVehicles=GetSelectedVehicles(controlId);
   
     selectedVehicles='&UsedVehicleID=' + selectedVehicles ;
    
    if(vehicleCheckboxes.length > 1)
    {
        inst.compareSelectedButton.disabled = false;
        inst.compareSelectedButton.href = "javascript:Shortlist.compareSelectedButtonClick('" + controlId + "','" + controlName + "');";
    }
    else
    {
        inst.compareSelectedButton.disabled = true;
        inst.compareSelectedButton.href = ""; 
    }  
    
    inst.printSelectedButton.disabled = false;
   // inst.printSelectedButton.href = "javascript:Shortlist.actionSelectedVehicles('" + controlId + "','" + shortlistUrlPrint + "');";
    inst.printSelectedButton.href = PrintUrl + selectedVehicles;
   
    inst.removeSelectedButton.disabled = false;
    inst.removeSelectedButton.href = "javascript:Shortlist.removeSelectedButtonClick('" + controlId + "','" + controlName + "');";
    
    inst.emailSelectedButton.disabled = false;
    inst.emailSelectedButton.href =  EmailUrl + selectedVehicles;
    //inst.emailSelectedButton.href = "javascript:Shortlist.actionSelectedVehicles('" + controlId + "','" + shortlistUrlEmail + "');";
    
    inst.enquireAboutSelectedButton.disabled = false;    
    inst.enquireAboutSelectedButton.href = "javascript:Shortlist.actionSelectedVehicles('" + controlId + "','" + enquiryFormUrl + "');";
    
}