
if(!manheim.global.isNamespaceDefined("manheim.portfolio.vwcv.ui.controls"))
{manheim.global.createNamespace("manheim.portfolio.vwcv.ui.controls","1.0");}
manheim.portfolio.vwcv.ui.controls.SearchValidation=manheim.portfolio.ui.controls.BaseControl.subClass
({"BINDER_NAME":"SearchValidation","SELECTOR_CONTROL":"form.mp-form-search","SELECTOR_CONTROL_CONTAINER":"div.control-container","SELECTOR_CONTROL_VALIDATION":"span.fieldError","SELECTOR_INPUT_POSTCODE":"div.postcode input","SELECTOR_REQUIRED_INPUTS":"div.vehiclecategory select, div.range select, div.postcode input","POSTBACK_CHANGE_TRIGGER":"postback.change","CONST_POSTCODE_REGEX":/^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) [0-9][A-Za-z]{2})$/g,"CLASS_ERROR":"fieldError","CLASS_MESSAGE_SHOW":"message-show","CLASS_MESSAGE_HIDE":"message-hide","init":function()
{this._super();},"_initControl":function(element,instangeId,settings)
{this.tracing().addTrace("Start init SearchValidation");var __this=this;$(element).bind("submit.validation",function(e)
{__this._onSubmit(e);});this.tracing().addTrace("End init SearchValidation");return true;},"_onSubmit":function(e)
{this.tracing().addTrace("Start submit.validation");if(e.triggerType&&e.triggerType===this.POSTBACK_CHANGE_TRIGGER)
{return true;}
var jqForm,isValidRequiredFields,isValidPostcode;jqForm=$(e.currentTarget);isValidRequiredFields=this._validateRequiredInputs(jqForm);isValidPostcode=this._validatePostcodeInput(jqForm);if(!isValidRequiredFields||!isValidPostcode)
{e.preventDefault();}
this.tracing().addTrace("End submit.validation");return(isValidRequiredFields&&isValidPostcode);},"_validateRequiredInputs":function(jqForm)
{var requiredControls,__isValid,__this;__isValid=true;__this=this;requiredControls=jqForm.find(this.SELECTOR_REQUIRED_INPUTS);requiredControls.each(function(i)
{var inputControl,inputValue,isValid;inputControl=$(this);inputValue=inputControl.val();isValid=(inputValue!==""&&inputValue!=="null");__this._toggleValidationMessage(inputControl,isValid);__isValid=(!__isValid)?__isValid:isValid;});return __isValid;},"_validatePostcodeInput":function(jqForm)
{var postcodeInput,postcode,formattedPostcode,rgex,isValid;postcodeInput=jqForm.find(this.SELECTOR_INPUT_POSTCODE);postcode=postcodeInput.val();if(postcode.indexOf(' ')===-1&&postcode!=='')
{postcode=postcode.substr(0,postcode.length-3)+' '+postcode.substr(postcode.length-3,3);}
rgex=new RegExp(this.CONST_POSTCODE_REGEX);formattedPostcode=postcode.match(rgex);isValid=(formattedPostcode!==null);if(isValid)
{postcodeInput.val(formattedPostcode);}
this._toggleValidationMessage(postcodeInput,isValid);return isValid;},"_toggleValidationMessages":function(jqControls,isValid)
{var __this=this;jqControls.each(function()
{__this._toggleValidationControl($(this),isValid);});},"_toggleValidationMessage":function(jqControl,isValid)
{var containerControl;containerControl=jqControl.closest(this.SELECTOR_CONTROL_CONTAINER);validationMessageControl=containerControl.find(this.SELECTOR_CONTROL_VALIDATION);if(isValid)
{validationMessageControl.removeClass(this.CLASS_MESSAGE_SHOW);validationMessageControl.addClass(this.CLASS_MESSAGE_HIDE);if(containerControl.hasClass(this.CLASS_ERROR))
{containerControl.removeClass(this.CLASS_ERROR);}}
else
{validationMessageControl.addClass(this.CLASS_MESSAGE_SHOW);validationMessageControl.removeClass(this.CLASS_MESSAGE_HIDE);if(!containerControl.hasClass(this.CLASS_ERROR))
{containerControl.addClass(this.CLASS_ERROR);}}},"_end":function()
{}});


$(document).ready(function()
{var util_tracing=new manheim.portfolio.utilities.Tracing(true,"global");var util_workflow=new manheim.portfolio.utilities.Workflow();var defaultControlBinder=new manheim.portfolio.ui.binders.Binder(util_tracing);var postbackBinder=defaultControlBinder.addControlBinder(new manheim.portfolio.ui.controls.PostBack());postbackBinder.WORKFLOW_SUFFIX="_se_up";postbackBinder.POSTBACK_MODE=2;postbackBinder.workflowUtility=util_workflow;defaultControlBinder.addControlBinder(new manheim.portfolio.vwcv.ui.controls.SearchValidation());defaultControlBinder.addControlBinding({"name":"Post Back Search Criteria","binderName":"PostBack","selector":"#searchCriteria form","instanceId":"PostBack"});defaultControlBinder.addControlBinding({"name":"Search Validation","binderName":"SearchValidation","selector":"#searchCriteria form","instanceId":"SearchValidation"});defaultControlBinder.bindControls();});

