function Request(endpoint,methodKey,parameters){this.endpoint=endpoint;this.methodKey=methodKey;this.parameters=parameters;this.send=function(callback){debug('SENDING REQUEST',jQuery.toJSON(this));jQuery.ajax({data:{"request":jQuery.toJSON(this)},type:"POST",async:true,url:this.endpoint,contentType:"application/x-www-form-urlencoded;charset=UTF-8",dataType:'json',success:function(data){debug('RECEIVED RESPONSE',jQuery.toJSON(data));callback(data)},error:function(xhr,ajaxOptions,thrownError){error('Ajax response: '+xhr.responseText)}})};return this};var logDebug=true;var logInfo=true;var logError=true;function info(){if(window.console&&window.console.log&&logInfo){window.console.log(arguments)}}function debug(){if(window.console&&window.console.log&&logDebug){window.console.log(arguments)}}function error(){if(window.console&&window.console.error&&logError){window.console.error(arguments[0])}}function selectChanged(id){jQuery(document).trigger(id+'_OnChange')}if(top.location!=location){top.location.href=document.location.href}function addEvent(obj,evType,fn){if(obj==null)return;if(obj.addEventListener){obj.addEventListener(evType,fn,false);return true}else if(obj.attachEvent){var r=obj.attachEvent("on"+evType,fn);return r}else{return false}}function removeEvent(obj,evType,fn){if(obj==null)return;if(obj.removeEventListener){obj.removeEventListener(evType,fn,false);return true}else if(obj.detachEvent){var r=obj.detachEvent("on"+evType,fn);return r}else{return false}}function cancelEvent(e){if(e&&e.preventDefault){e.preventDefault()}if(e){e.returnValue=false}return false}function validateCCNumber(ccNum){var isValid=false;var ccCheckRegExp=new RegExp("[^\\d -]");isValid=!ccCheckRegExp.test(ccNum);if(isValid){isValid=false;var cardNumbersOnly=ccNum.replace(/\s+/g,"");cardNumbersOnly=cardNumbersOnly.replace(/-+/g,"");var cardNumberLength=cardNumbersOnly.length;if(cardNumberLength>13){isValid=true}}return isValid}function validateMultipleEmails(emailListStr){var emails=emailListStr.split(";");if(emails.length>1){for(i=0;i<emails.length;i++){if(validateEMail(jq.trim(emails[i]))==false){return false}}return true}else{return(validateEMail(jq.trim(emailListStr)))}}function validateEMail(emailStr){if(emailStr.length==0)return false;var pattern=new RegExp("^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$");return pattern.test(emailStr)}function validatePassword(password){if(password==''){return false}else if(password!=document.getElementById("verifyPassword").value){return false}else{return true}}function validateDate(dateStr){if(dateStr.length==0)return false;var pattern=new RegExp("(0[1-9]|[1-9]|1[012])[- /.](0[1-9]|[1-9]|[12][0-9]|3[01])[- /.](19|20)\\d\\d");return pattern.test(dateStr)}function validatePhone(phoneStr){if(phoneStr.length==0)return false;var newPhoneStr=phoneStr.replace(/[^0-9]/g,'');return newPhoneStr.length==10}function validatePostal(postalStr){if(postalStr.length==0)return false;var tempCountry=docElem=document.getElementById("country").value;if(tempCountry=="CA"){var objRegExp=/(^[a-zA-Z]\d[a-zA-Z][-\s]?\d[a-zA-Z]\d$)/}else{var objRegExp=/(^\d{5}$)|(^\d{5}-\d{4}$)/}return objRegExp.test(postalStr)}function createMouseEvent(event,object){var delta=0;if(!event)event=window.event;if(event.wheelDelta){delta=event.wheelDelta/120;if(window.opera)delta=-delta}else if(event.detail){delta=-event.detail/3}if(delta<0&&delta>-1)delta=-1;else if(delta>0&&delta<1)delta=1;else delta=Math.round(delta);x=event.screenX;y=event.screenY;if(object.createMouseEvent){object.createMouseEvent(x,y,delta);return cancelEvent(event)}else return true}function insertFlexComponent(id,location,width,height,attributes,flashvars,params){if(!attributes){attributes={}}attributes.id=id;attributes.name=id;if(!params){params={}}params.wmode="transparent";try{swfobject.embedSWF(location+".swf",id,width,height,"9","/images/playerProductInstall.swf",flashvars,params,attributes)}catch(e){}}var gup=function(name){var results=(new RegExp("[\\?&]"+name+"=([^&#]*)")).exec(window.location.href);if(results==null){return""}else{return results[1]}};function sortSelectObj(selectObj,values){var sizeOrder=values;if(values)sizeOrder=values.split(',');if(selectObj==null)return;var sizeOrder=values.split(',');var selectedValue='';if(selectObj.selectedIndex>-1){selectedValue=selectObj.options[selectObj.selectedIndex].text}var newArray=new Array();var newArrayIdx=0;if(selectObj!=null&&selectObj.options!=undefined){for(var i=0;i<sizeOrder.length;i++){for(var y=0;y<selectObj.options.length;y++){if(sizeOrder[i]==selectObj.options[y].text){newArray[newArrayIdx++]=sizeOrder[i];break}}}newArrayIdx=0;if(newArray.length<selectObj.options.length-1){var newArray2=new Array();for(var i=0;i<selectObj.options.length;i++){var found=false;for(var y=0;y<newArray.length;y++){if(selectObj.options[i].value==newArray[y]){found=true;break}}if(found==false&&selectObj.options[i].value!='-1'){newArray2[newArrayIdx++]=selectObj.options[i].value}}for(var y=0;y<newArrayIdx;y++){newArray[newArray.length]=newArray2[y]}}}emptySelectObj(selectObj);for(var i=0;i<newArray.length;i++){selectObj.options[selectObj.options.length]=new Option(newArray[i],newArray[i])}if(selectedValue!=''){for(var i=0;i<selectObj.options.length;i++){if(selectedValue==selectObj.options[i].text){selectObj.selectedIndex=i}}}}function checkKeyPress(evt,elementid){if(evt.keyCode==13){document.getElementById(elementid).click();return false}}function sortSelectObjByValue(selectObj,values){var sizeOrder=values;if(values)sizeOrder=values.split(',');if(selectObj==null)return;var sizeOrder=values.split(',');var selectedValue='';if(selectObj.selectedIndex>-1){selectedValue=selectObj.options[selectObj.selectedIndex].value}var newArray=new Array();var newArrayIdx=0;if(selectObj!=null&&selectObj.options!=null){for(var i=0;i<sizeOrder.length;i++){for(var y=0;y<selectObj.options.length;y++){if(sizeOrder[i]==selectObj.options[y].value){newArray[newArrayIdx++]=selectObj.options[y].text;break}}}newArrayIdx=0;if(newArray.length<selectObj.options.length-1){var newArray2=new Array();for(var i=0;i<selectObj.options.length;i++){var found=false;for(var y=0;y<newArray.length;y++){if(selectObj.options[i].value==newArray[y]){found=true;break}}if(found==false&&selectObj.options[i].value!='-1'){newArray2[newArrayIdx++]=selectObj.options[i].text}}for(var y=0;y<newArrayIdx;y++){newArray[newArray.length]=newArray2[y]}}emptySelectObj(selectObj);for(var i=0;i<newArray.length;i++){selectObj.options[selectObj.options.length]=new Option(newArray[i],newArray[i])}if(selectedValue!=''){for(var i=0;i<selectObj.options.length;i++){if(selectedValue==selectObj.options[i].value){selectObj.selectedIndex=i}}}}}function emptySelectObj(selectObj){if(selectObj==null||selectObj.options==undefined)return;for(var i=0;i<selectObj.options.length;i++){if(selectObj.options[i].value!='-1'){selectObj.remove(i);i--}}}function getOptions(array,value,name){var options="";var object;for(var i=0;i<array.length;i++){object=array[i];options=options+"<option value='"+object[value]+"'>"+object[name]+"</option>\r\n"}return options}var validationErrorStrings={'nickName':'Nick Name is required','firstName':'First Name is required','lastName':'Last Name is required','address1':'Address is required','city':'City is required','state':'State is required','country':'Country is required','postal':'Postal Code is required','phone':'Phone Number is required','password':'Password must match','verifyPassword':'Verify Password is required','cardNumber':'Credit Card Number is invalid'};var validationTextInput={'nickName':true,'firstName':true,'lastName':true,'address1':true,'city':true,'password':true,'verifyPassword':true,'cardNumber':true};var validationSelectField={'state':true,'country':true};var validationFunctions={'postal':validatePostal,'phone':validatePhone,'password':validatePassword,'newEmail':validateEMail,'newPassword':validatePassword,'cardNumber':validateCCNumber};function _getErrorString(element_id,errorString){var docElem=null;if(element_id!=null)docElem=document.getElementById(element_id);if(docElem!=null){var isError=false;if(validationTextInput[element_id]==true&&jq.trim(docElem.value)=='')isError=true;else if(validationSelectField[element_id]==true&&docElem.value==-1)isError=true;else if(validationFunctions[element_id]!=null)isError=!eval(validationFunctions[element_id](docElem.value));if(isError==true){if(errorString==null)errorString=validationErrorStrings[element_id]}else errorString=null}return errorString}var doValidate=true;function startValidateForm(e){if(doValidate){return validateAllItems(e)}else{doValidate=true;return true}}function validateAllItems(event){var success=true;for(var element_id in validationErrorStrings){validateForm(event,element_id)}for(var element_id in validationErrorStrings){success=success&&validateForm(event,element_id)}return success}function validateForm(event,source){var docElem=null;var docId=null;var errorString=null;if(source==null)validateAllItems(event);if(typeof source=='string'){docId=source;docElem=document.getElementById(source)}else{docElem=source;docId=docElem.id}if(docElem==null||docId==null){setBubbleVisible(false);return true}errorString=_getErrorString(docId,null);try{docElem.parentNode.parentNode.cleanWhitespace()}catch(e){}if(errorString&&errorString.length>0){var className=docElem.parentNode.parentNode.childNodes[0].className+'';docElem.parentNode.parentNode.childNodes[0].className=className.replace(/missing\s?/g,'')+' missing';var retVal=cancelEvent(event);setupBubble(docId,errorString,false);setBubbleVisible(true);return retVal}else{return clearError(docId)}}function clearAllErrors(){for(var element_id in validationErrorStrings){clearError(element_id)}}function clearError(element_id){var docElem=jq('#'+element_id).get(0);if(!docElem)return;var className=docElem.parentNode.parentNode.childNodes[0].className+'';docElem.parentNode.parentNode.childNodes[0].className=className.replace(/missing\s?/g,'');setBubbleVisible(false);return true}function itemClicked(e,categoryId,categoryName,icSort,categoryurl){var url='';var cmCategoryDescription="MainNav: "+categoryName+" ("+categoryId+")";if(!e)var e=window.event;e.cancelBubble=true;if(e.stopPropagation)e.stopPropagation();url+=categoryurl;var targ;if(e.target)targ=e.target;else if(e.srcElement)targ=e.srcElement;if(targ.nodeType==3)targ=targ.parentNode;var tObj=findParentWithClass(targ,'mainMenuItem');if(tObj==null){if('<%=session.getAttribute("onSaleCategory")%>'=='true'){category='OS_'+categoryId}else{category='MM_'+categoryId}}else{if(tObj.id.indexOf('cat10006')>0){category='OS_'+categoryId}else{category='MM_'+categoryId}}url+='?icCategory='+category+'&icSort='+icSort;self.location=url;return true}function findParentWithClass(divObj,classStr){var tObj=divObj;for(var i=0;i<10;i++){var parentObj=tObj.parentNode;if(parentObj){if(parentObj.className==classStr){return parentObj}tObj=parentObj}}}
