
Type.registerNamespace('Monster.Client.Behavior.CartRedux');Monster.Client.Behavior.CartRedux.ProductControlAdapter=function(element){Monster.Client.Behavior.CartRedux.ProductControlAdapter.initializeBase(this,[element]);this.createProperty('_pageName');this.createProperty('_mainPanel');this.createProperty('_errorPanel');this.createProperty('_errorLabel');this._productTable=null;this._itemCount=null;this._elementsWithHandlers=[];this._currentContext=null;this._siteColumnIndex=-1;this._deletedAdEnhancements=[];this._allFromInventory=false;this._runningTimer=0;this._pendingAction=false;this._candCheck=new Array();}
Monster.Client.Behavior.CartRedux.ProductControlAdapter.prototype={initialize:function(){Monster.Client.Behavior.CartRedux.ProductControlAdapter.callBaseMethod(this,'initialize');if(typeof(OrderServices)!=='undefined'){this._webService=OrderServices.Orders;}},dispose:function(){this.removeHandlers(this._elementsWithHandlers);Monster.Client.Behavior.CartRedux.ProductControlAdapter.callBaseMethod(this,'dispose');},onSuccess:function(result,adapter,methodName){var update=false;adapter.unblockControl();switch(methodName){case'DeleteGenericProduct':update=adapter.deleteGenericProduct(result);break;case'DeletePositionAd':update=adapter.deletePositionAd(result);break;case'DeletePositionAdEnhancement':update=adapter.deletePositionAdEnhancement(result);break;case'DeletePositionEnhancement':update=adapter.deletePositionEnhancement(result);break;case'DeleteCandidateCheck':update=adapter.deleteCandidateCheck(result);break;case'DeleteRequestedCandidateCheck':update=adapter.deleteRequestedCandidateCheck(result);break;case'DeleteCandidateDNA':update=adapter.deleteCandidateDNA(result);break;case'ChangeProductQuantity':update=adapter.changeProductQuantity(result);break;case'EditCandidateCheck':update=adapter.editCandidateCheck(result);break;}
if(result.NeedRefresh){adapter.hideModal(mode=adapter.ePopupMode.Spinner);adapter._pendingAction=false;var currentPage=window.location;window.location=currentPage;return;}
if(update){adapter._dataStore.set_property('PriceData',{totalPrice:result.TotalPrice,totalPriceString:result.TotalPriceString,grandSubTotal:result.GrandSubTotal,taxes:result.Taxes});adapter._dataStore.set_property('SplitBillingData',result.SplitBillingData);adapter._dataStore.set_property('MiniCartData',{price:result.GrandSubTotal,shortPrice:result.GrandSubTotalShort,items:result.MiniCartItems});adapter._dataStore.set_property('DiscountData',{hasDiscount:result.CartHasDiscount,discountInfo:result.CartDiscountInfo});}
adapter.hideModal(mode=adapter.ePopupMode.Spinner);adapter._pendingAction=false;},onFailure:function(result,adapter,methodName){adapter.hideModal(mode=adapter.ePopupMode.Spinner);adapter._pendingAction=false;alert('Web service error: '+result.get_message()+' '+result.get_stackTrace());},initHandlers:function(element,event,args){if(this._productTable==null){this._productTable=this.getParentNodeByTagName(element,'TABLE');var columns=this._productTable.rows[0].cells;for(var i=0;i<columns.length;++i){if(Sys.UI.DomElement.containsCssClass(columns[i],'column-site')){this._siteColumnIndex=i;break;}}}
switch(args.actionName){case'deleteGenericProduct':this.initDeleteGenericProductHandler(element,event,args);return;case'deletePositionAd':this.initDeletePositionAdHandler(element,event,args);return;case'deletePositionAdEnhancement':this.initDeletePositionAdEnhancementHandler(element,event,args);return;case'deletePositionEnhancement':this.initDeletePositionEnhancementHandler(element,event,args);return;case'deleteCandidateCheck':this.initDeleteCandidateCheckHandler(element,event,args);return;case'deleteRequestedCandidateCheck':this.initDeleteRequestedCandidateCheckHandler(element,event,args);return;case'deleteCandidateDNA':this.initDeleteCandidateDNAHandler(element,event,args);return;case'changeProductQuantity':this.initChangeProductQuantityHandler(element,event,args);return;case'editCandidateCheck':this.initEditCandidateCheckHandler(element,event,args);return;default:alert('Undefined action '+args.actionName);}},initDeleteGenericProductHandler:function(element,event,args){var context={instance:this,itemNumber:args.itemNumber,element:element};this.addHandlers(element,event,{click:this.onDeleteGenericProduct},context);},initDeletePositionAdHandler:function(element,event,args){var context={instance:this,positionAd:args.positionAd,enhancementCount:args.enhancementCount,element:element};this.addHandlers(element,event,{click:this.onDeletePositionAd},context);},initDeletePositionAdEnhancementHandler:function(element,event,args){var context={instance:this,positionAd:args.positionAd,enhancementType:args.enhancementType,element:element};this.addHandlers(element,event,{click:this.onDeletePositionAdEnhancement},context);},initDeletePositionEnhancementHandler:function(element,event,args){var context={instance:this,itemNumber:args.itemNumber,element:element};this.addHandlers(element,event,{click:this.onDeletePositionEnhancement},context);},initDeleteCandidateCheckHandler:function(element,event,args){var context={instance:this,itemNumber:args.itemNumber,element:element,hasFee:args.hasFee};this.addHandlers(element,event,{click:this.onDeleteCandidateCheck},context);},initDeleteRequestedCandidateCheckHandler:function(element,event,args){var context={instance:this,itemNumber:args.itemNumber,element:element};this.addHandlers(element,event,{click:this.onDeleteRequestedCandidateCheck},context);},initDeleteCandidateDNAHandler:function(element,event,args){var context={instance:this,itemNumber:args.itemNumber,element:element};this.addHandlers(element,event,{click:this.onDeleteCandidateDNA},context);},initChangeProductQuantityHandler:function(element,event,args){var context={instance:this,itemNumber:args.itemNumber,errorMessageId:args.errorMessageId,element:element};$addHandlers(element,{keyup:this.onChangeProductQuantity},context);this._elementsWithHandlers.push(element);if(Sys.Browser.agent!=Sys.Browser.InternetExplorer){this.onChangeProductQuantity.call(context,event);}},initEditCandidateCheckHandler:function(element,event,args){var context={instance:this,candidateCheckOrderId:args.candidateCheckOrderId,applicantId:args.applicantId,errorMessage:args.errorMessage,popup:args.popup,frame:args.frame};this.addHandlers(element,event,{click:this.onEditCandidateCheck},context);},onDeleteGenericProduct:function(event){this.instance._currentContext={itemNumber:this.itemNumber,row:this.instance.getParentNodeByTagName(this.element,'TR')};this.instance.blockControl();this.instance.callService('DeleteGenericProduct',[this.itemNumber]);},onDeletePositionAd:function(event){this.instance._currentContext={row:this.instance.getParentNodeByTagName(this.element,'TR'),enhancementCount:this.enhancementCount,positionAd:this.positionAd};this.instance.blockControl();this.instance.callService('DeletePositionAd',[this.positionAd,this.instance._allFromInventory]);},onDeletePositionAdEnhancement:function(event){this.instance._currentContext={row:this.instance.getParentNodeByTagName(this.element,'TR'),positionAd:this.positionAd};this.instance.blockControl();this.instance.callService('DeletePositionAdEnhancement',[this.positionAd,this.enhancementType,this.instance._allFromInventory]);},onDeletePositionEnhancement:function(event){this.instance._currentContext={itemNumber:this.itemNumber,row:this.instance.getParentNodeByTagName(this.element,'TR')};this.instance.blockControl();this.instance.callService('DeletePositionEnhancement',[this.itemNumber]);},onDeleteCandidateCheck:function(event){this.instance._currentContext={itemNumber:this.itemNumber,row:this.instance.getParentNodeByTagName(this.element,'TR'),hasFee:this.hasFee};this.instance.blockControl();this.instance.callService('DeleteCandidateCheck',[this.itemNumber]);},onDeleteRequestedCandidateCheck:function(event){this.instance._currentContext={itemNumber:this.itemNumber,row:this.instance.getParentNodeByTagName(this.element,'TR')};this.instance.blockControl();this.instance.callService('DeleteRequestedCandidateCheck',[this.itemNumber]);},onDeleteCandidateDNA:function(event){this.instance._currentContext={itemNumber:this.itemNumber,row:this.instance.getParentNodeByTagName(this.element,'TR')};this.instance.blockControl();this.instance.callService('DeleteCandidateDNA',[this.itemNumber]);},onChangeProductQuantity:function(event){this.element.value=this.element.value.replace(/[^\d]/,'');if(this.instance._runningTimer!=0){window.clearTimeout(this.instance._runningTimer);}
this.instance._currentContext={itemNumber:this.itemNumber,row:this.instance.getParentNodeByTagName(this.element,'TR'),element:this.element,errorMessageId:this.errorMessageId};var adapter=this.instance;this.instance._runningTimer=window.setTimeout(function(){adapter._pendingAction=true;adapter.blockControl();adapter.callService('ChangeProductQuantity',[adapter._currentContext.itemNumber,adapter._currentContext.element.value,adapter._currentContext.errorMessageId]);},500);},onEditCandidateCheck:function(event){this.instance._currentContext={candidateCheckOrderId:this.candidateCheckOrderId,applicantId:this.applicantId,errorMessage:this.errorMessage,popup:this.popup,frame:this.frame};this.instance.blockControl();this.instance.callService('EditCandidateCheck',[this.candidateCheckOrderId,this.applicantId]);},deleteGenericProduct:function(result){if(!result.Deleted){return false;}
if(result.RedirectUrl.length>0){window.location=result.RedirectUrl;return false;}
if(!result.NeedRefresh){this.deleteRows(1,true);this.updateSiteColumnVisibility();}
return true;},deletePositionAd:function(result){if(!result.Deleted){return false;}
for(var e=0;e<this._deletedAdEnhancements.length;++e){if(this._deletedAdEnhancements[e]==this._currentContext.positionAd){--this._currentContext.enhancementCount;}}
if(result.RedirectUrl.length>0){window.location=result.RedirectUrl;return false;}
if(!result.NeedRefresh){this.deleteRows(this._currentContext.enhancementCount+1,true);this.updateSiteColumnVisibility();}
return true;},deletePositionAdEnhancement:function(result){if(!result.Deleted){return false;}
this._deletedAdEnhancements.push(this._currentContext.positionAd);if(result.RedirectUrl.length>0){window.location=result.RedirectUrl;return false;}
if(!result.NeedRefresh){this.deleteRows(1,false);this.updateSiteColumnVisibility();}
return true;},deletePositionEnhancement:function(result){return this.deleteGenericProduct(result);},deleteCandidateCheck:function(result){if(!result.Deleted){return false;}
this.deleteGenericProduct(result);if(this._currentContext.hasFee&&this._itemCount==1){this.deleteRows(1,true);}
return true;},deleteRequestedCandidateCheck:function(result){return this.deleteGenericProduct(result);},deleteCandidateDNA:function(result){return this.deleteGenericProduct(result);},changeProductQuantity:function(result){var cell=this.getParentNodeByTagName(this._currentContext.element,'TD');if(result.ErrorMessage.length>0){this.displayError(result.ErrorMessage);Sys.UI.DomElement.addCssClass(cell,'quantity-error');return false;}
Sys.UI.DomElement.removeCssClass(cell,'quantity-error');this._currentContext.row.cells[cell.cellIndex-1].innerHTML=result.ItemUnitPrice;this._currentContext.row.cells[cell.cellIndex+1].innerHTML=result.ItemTotalPrice;if(this._currentContext.row.rowIndex+1<this._productTable.rows.length){var followingRow=this._productTable.rows[this._currentContext.row.rowIndex+1];if(followingRow&&Sys.UI.DomElement.containsCssClass(followingRow,'discount-line')){followingRow.style.display=(result.LineHasDiscount?'':'none');}}
return true;},editCandidateCheck:function(result){if(result.RedirectUrl.length==0){radalert(this._currentContext.errorMessage,330,210);return false;}
var window=radopen(null,'HRPopupWindow');window.setSize(900,675);window.moveTo(70,170);window.setUrl(result.RedirectUrl);return false;},callService:function(methodName,args){this.hideError();this.callServer(methodName,args);},getParentNodeByTagName:function(element,tagName){if(element==null){return null;}
if(element.tagName==tagName){return element;}
return this.getParentNodeByTagName(element.parentNode,tagName);},removeHandlers:function(handlers){for(var i=0;i<handlers.length;++i){$clearHandlers(handlers[i]);}},removeDividerRow:function(rowIndex,totalRows){while(rowIndex<totalRows){var row=this._productTable.rows[rowIndex];this._productTable.deleteRow(rowIndex);totalRows=totalRows-1;if(Sys.UI.DomElement.containsCssClass(row,'divider-row')){break;}}
return totalRows;},restyleRows:function(){var logicalRow=1;for(var i=1;i<this._productTable.rows.length;++i){var row=this._productTable.rows[i];if(!Sys.UI.DomElement.containsCssClass(row,'divider-row')){Sys.UI.DomElement.removeCssClass(row,'odd-row');Sys.UI.DomElement.removeCssClass(row,'even-row');Sys.UI.DomElement.addCssClass(row,(logicalRow%2==1)?'odd-row':'even-row');}
else{++logicalRow;}}
Sys.UI.DomElement.addCssClass(this._productTable.rows[this._productTable.rows.length-1],'last-row');},deleteRows:function(count,deleteDivider){if(this._itemCount>count){var rowIndex=this._currentContext.row.rowIndex;var totalRows=this._productTable.rows.length;for(var i=count;i>0;--i){this._productTable.deleteRow(rowIndex);this._itemCount=this._itemCount-1;totalRows=totalRows-1;}
if(deleteDivider){totalRows=this.removeDividerRow(rowIndex,totalRows);}
this.restyleRows();}
else{Sys.UI.DomElement.setVisible(this._mainPanel,false);}},displayError:function(error){if(this._errorPanel!=null){Sys.UI.DomElement.setVisible(this._errorPanel,true);}
if(this._errorLabel!=null){this._errorLabel.innerHTML=error;}},hideError:function(){if(this._errorPanel!=null){Sys.UI.DomElement.setVisible(this._errorPanel,false);}},updateSiteColumnVisibility:function(){if(this._siteColumnIndex==-1){return;}
var rows=this._productTable.rows;for(var i=1;i<rows.length;++i){if(!Sys.UI.DomElement.containsCssClass(rows[i],'divider-row')&&this.getText(rows[i].cells[this._siteColumnIndex])!='Monster'){return;}}
for(var i=0;i<rows.length;++i){if(!Sys.UI.DomElement.containsCssClass(rows[i],'divider-row')){Sys.UI.DomElement.setVisible(rows[i].cells[this._siteColumnIndex],false);}}
this._siteColumnIndex=-1;},getText:function(element){if(typeof(element.textContent)=='string'&&element.textContent!=null){return element.textContent.trim();}
if(typeof(element.innerText)=='string'&&element.innerText!=null){return element.innerText.trim();}
return'';},addHandlers:function(element,event,handlers,context){var originalHandler=null;for(var handler in handlers){var originalHandler=handlers[handler];handlers[handler]=function(){if(!this.instance._pendingAction){this.instance._pendingAction=true;originalHandler.call(context,event);}};}
$addHandlers(element,handlers,context);this._elementsWithHandlers.push(element);if(originalHandler&&Sys.Browser.agent!=Sys.Browser.InternetExplorer){originalHandler.call(context,event);}},blockControl:function(){var blockElem=$(this._productTable).closest("div.box-content");blockElem.block({message:"<img src='http://media.newjobs.com/id/hiring/redux/global/loading.gif' />",css:{border:0,backgroundColor:"transparent"},overlayCSS:{backgroundColor:"#CCC",opacity:0.4}});},unblockControl:function(){var blockElem=$(this._productTable).closest("div.box-content");$(blockElem).unblock();}}
Monster.Client.Behavior.CartRedux.ProductControlAdapter.registerClass('Monster.Client.Behavior.CartRedux.ProductControlAdapter',Monster.Client.Behavior.DataAdapterBase);if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();
;
