var CartOpen = false; var errSt; function getVars(){ this.fieldN = new Array(); // Field name this.fieldV = new Array(); // Field value this.fieldT = new Array(); // Field type (text, editor, checkbox, radio, select, mselect, date) this.fieldI = new Array(); // Field Id this.fieldC = new Array(); // Check for equal field this.fieldEQ = new Array(); // Check for equal supplied string match this.fieldNM = new Array(); // if 1 Check for field is Numeric this.fieldGT = new Array(); // Check for Greater than supplied string (works for field type text and date only) this.fieldLT = new Array(); // Check for Less than supplied string (works for field type text and date only) this.fieldGE = new Array(); // Check for Grter thn o equal to supplied str(works for field type text & date only) this.fieldLE = new Array(); // Check for Less than o equal to supplied string(works for field type text & date only) this.fieldBT = new Array(); // Check for between 2 values (works for field type text only) } function checkEmpty(formN, objvar){ var err = ""; var frmObj = eval("document." + formN); for(var i=0; i]*>/g; mContents = mContents.replace(re,""); if((mContents == "") || (mContents == " ")) { err += objvar.fieldV[i] + "\n"; } } if(objvar.fieldT[i] == "text"){ var frmElm = eval("frmObj." + objvar.fieldN[i]); if((frmElm.value == "") || (frmElm.value == " ")) { err += objvar.fieldV[i] + "\n"; }else if(objvar.fieldNM[i] == 1){ var chkInt = frmElm.value; if(isNaN(chkInt)){ err += objvar.fieldV[i] + " (Not a Number)\n"; } }else if(objvar.fieldC[i]){ var frmCElm = eval("frmObj." + objvar.fieldC[i]); if(frmElm.value != frmCElm.value){ err += objvar.fieldV[i] + " mismatch\n"; } }else if(objvar.fieldN[i].indexOf("email") >= 0){ if(!checkEmail(frmElm.value)) { err += objvar.fieldV[i] + " (Invalid Email Id)\n"; } }else if(objvar.fieldN[i].indexOf("url") >= 0){ if(!checkUrl(frmElm.value)) { err += objvar.fieldV[i] + " (Invalid URL)\n"; } }else if(objvar.fieldN[i].indexOf("website") >= 0){ if(!checkUrl(frmElm.value)) { err += objvar.fieldV[i] + " (Invalid URL)\n"; } }else if(objvar.fieldEQ[i]) { if(frmElm.value != objvar.fieldEQ[i]) { err += objvar.fieldV[i] + " (IInvalid entry)\n"; } }else if(objvar.fieldGT[i]) { if(frmElm.value <= objvar.fieldGT[i]) { err += objvar.fieldV[i] + " (Invalid entry)\n"; } }else if(objvar.fieldLT[i]) { if(frmElm.value >= objvar.fieldLT[i]) { err += objvar.fieldV[i] + " (Invalid entry)\n"; } }else if(objvar.fieldGE[i]) { if(frmElm.value < objvar.fieldGE[i]) { err += objvar.fieldV[i] + " (Invalid entry)\n"; } }else if(objvar.fieldLE[i]) { if(frmElm.value > objvar.fieldLE[i]) { err += objvar.fieldV[i] + " (Invalid entry)\n"; } }else if(objvar.fieldBT[i]) { var btSplit = new Array(); btSplit = objvar.fieldBT[i].split('|'); if(btSplit[0] > btSplit[1]) { var tmpSplit = btSplit[0]; btSplit[0] = btSplit[1]; btSplit[1] = tmpSplit; } if((frmElm.value < btSplit[0]) || (frmElm.value > btSplit[1])) { err += objvar.fieldV[i] + " (Invalid entry)\n"; } } } if(objvar.fieldT[i] == "checkbox"){ var frmElm = eval("frmObj." + objvar.fieldN[i]); if(frmElm.checked === false) { err += objvar.fieldV[i] + "\n"; } } if((objvar.fieldT[i] == "select")||(objvar.fieldT[i] == "mselect")){ var frmElm = document.getElementById(objvar.fieldI[i]); var selectedI = false; for(var j=0; j< frmElm.length; j++) { if(frmElm[j].selected == true) { selectedI = true; if(objvar.fieldT[i] == "select") { if((frmElm.value == "") || (frmElm.value == 0)){ selectedI = false; } } } } if(selectedI == false) { err += objvar.fieldV[i] + "\n"; } } if(objvar.fieldT[i] == "radio"){ var frmElm = eval("frmObj." + objvar.fieldN[i]); var checkedI = false; for(var j=0; j< frmElm.length; j++) { if(frmElm[j].checked == true) { checkedI = true; } } if(checkedI === false) { err += objvar.fieldV[i] + "\n"; } } } if(err != "") { var errShow = "Following fields are empty or not entered correctly: \n\n"; errShow += err; alert(errShow); return false; } return true; } function checkDate(frmname, dd,mm,yy){ // alert(frmname); frmobj = eval("document." + frmname); var day = parseInt(eval("frmobj." + dd + ".value"), 10); var month = parseInt(eval("frmobj." + mm + ".value"), 10); var year = parseInt(eval("frmobj." + yy + ".value"), 10); var checkLeep = year%4; if((checkLeep > 0) && (month == 2) && (day > 28)) { return false; } if((checkLeep == 0) && (month == 2) && (day > 29)) { return false; } if((day > 30) && ( (month == 4) || (month == 6) || (month == 9) || (month == 11))) { return false; } if(isNaN(day) || isNaN(month) || isNaN(year)) { return false; } return true; } function validateDate(day,month,year){ day = parseInt(day); month = parseInt(month); year = parseInt(year); var checkLeep = year%4; if((checkLeep > 0) && (month == 2) && (day > 28)) { return false; } if((checkLeep == 0) && (month == 2) && (day > 29)) { return false; } if((day > 30) && ( (month == 4) || (month == 6) || (month == 9) || (month == 11))) { return false; } if(isNaN(day) || isNaN(month) || isNaN(year)) { return false; } return true; } function compareDate(frmname, cmpType, cmpStr, dd,mm,yy){ if(cmpType == 'BT') { var cmpSplit = new Array(); cmpSplit = cmpStr.split('|'); cmpStr = cmpSplit[0]; cmpStrEnd = cmpSplit[1]; dateSplitEnd = cmpStrEnd.split(','); var eday = parseInt(dateSplitEnd[0], 10); var emonth = parseInt(dateSplitEnd[1], 10); var eyear = parseInt(dateSplitEnd[2], 10); var empStr = eyear + "," + appendZero(emonth) + "," + appendZero(eday); empStr = empStr.replace(/,/g, ""); } var dateSplit = new Array(); dateSplit = cmpStr.split(','); var cday = parseInt(dateSplit[0], 10); var cmonth = parseInt(dateSplit[1], 10); var cyear = parseInt(dateSplit[2], 10); frmobj = eval("document." + frmname); var day = parseInt(frmobj.dd.value, 10); var month = parseInt(frmobj.mm.value, 10); var year = parseInt(frmobj.yy.value, 10); var cmpStr = cyear + "," + appendZero(cmonth) + "," + appendZero(cday); var curStr = year + "," + appendZero(month) + "," + appendZero(day); cmpStr = cmpStr.replace(/,/g, ""); curStr = curStr.replace(/,/g, ""); if(cmpType == 'EQ') { if(curStr != cmpStr) { return false; } } if(cmpType == 'GT') { if(curStr <= cmpStr) { return false; } } if(cmpType == 'LT') { if(curStr >= cmpStr) { return false; } } if(cmpType == 'GE') { if(curStr < cmpStr) { return false; } } if(cmpType == 'LE') { if(curStr > cmpStr) { return false; } } if(cmpType == 'BT') { if(cmpStr > empStr) { var tmpStr = cmpStr; cmpStr = empStr; empStr = tmpStr; } if((curStr < cmpStr) || (curStr > empStr)) { return false; } } return true; } function checkEmail(fieldValue){ var chkAt = fieldValue.indexOf("@"); var chkDot= fieldValue.indexOf("."); var chkHack= fieldValue.indexOf("@."); var chkHackA= fieldValue.indexOf(".@"); if((chkAt >= 0) && (chkDot >= 0) && (chkHack == -1) && (chkHackA == -1) ) { return true; } return false; } function checkUrl(fieldValue){ var chkAt = fieldValue.indexOf("@"); var chkDot= fieldValue.indexOf("."); if(fieldValue.length <= 8) { return false; } if((fieldValue.substr(0,7) == "http://") || (fieldValue.substr(0,8) == "https://")) { return true; } return false; } function appendZero(val){ var str = ""; str = '' + val + ''; if(str.length == 1) { str = "0" + str; } return str; } function number_format(p,d) { var r; if(p<0){p=-p;r=format_number2(p,d);r="-"+r;} else {r=format_number2(p,d);} return r; } function format_number2(pnumber,decimals) { var strNumber = new String(pnumber); var arrParts = strNumber.split('.'); var intWholePart = parseInt(arrParts[0],10); var strResult = ''; if (isNaN(intWholePart)) intWholePart = '0'; if(arrParts.length > 1) { var decDecimalPart = new String(arrParts[1]); var i = 0; var intZeroCount = 0; while ( i < String(arrParts[1]).length ) { if( parseInt(String(arrParts[1]).charAt(i),10) == 0 ) { intZeroCount += 1; i += 1; } else break; } decDecimalPart = parseInt(decDecimalPart,10)/Math.pow(10,parseInt(decDecimalPart.length-decimals-1)); Math.round(decDecimalPart); decDecimalPart = parseInt(decDecimalPart)/10; decDecimalPart = Math.round(decDecimalPart); //If the number was rounded up from 9 to 10, and it was for 1 'decimal' //then we need to add 1 to the 'intWholePart' and set the decDecimalPart to 0. if(decDecimalPart==Math.pow(10, parseInt(decimals))) { intWholePart+=1; decDecimalPart="0"; } var stringOfZeros = new String(''); i=0; if( decDecimalPart > 0 ) { while( i < intZeroCount) { stringOfZeros += '0'; i += 1; } } decDecimalPart = String(intWholePart) + "." + stringOfZeros + String(decDecimalPart); var dot = decDecimalPart.indexOf('.'); if(dot == -1) { decDecimalPart += '.'; dot = decDecimalPart.indexOf('.'); } var l=parseInt(dot)+parseInt(decimals); while(decDecimalPart.length <= l) { decDecimalPart += '0'; } strResult = decDecimalPart; } else { var dot; var decDecimalPart = new String(intWholePart); decDecimalPart += '.'; dot = decDecimalPart.indexOf('.'); var l=parseInt(dot)+parseInt(decimals); while(decDecimalPart.length <= l) { decDecimalPart += '0'; } strResult = decDecimalPart; } return strResult; } function mainShopCartLoad() { var objCartAlign = document.getElementById('topNavi'); var objCart = document.getElementById('cartCont'); var leftX = findPosX(objCartAlign); var topY = findPosY(objCartAlign); objCart.style.top = (topY + 20); objCart.style.left = leftX - 220; var browser = new Browser(); var bodyObj = document.getElementsByTagName('BODY')[0]; bodyObj.onscroll = function(e) { MoveShopCart(); } } var cartTop = 0; function fixCartPosition(dragObj){ var objCart = document.getElementById('cartCont'); if(objCart){ var scrolledX, scrolledY; var bodyObj = document.getElementsByTagName('BODY')[0]; scrolledX = bodyObj.scrollLeft; scrolledY = bodyObj.scrollTop; cartTop = objCart.offsetTop - scrolledY; } } function shopCartClose() { close_cart_delay(); } function MoveShopCart(){ var scrolledX, scrolledY; var objCart = document.getElementById('cartCont'); var bodyObj = document.getElementsByTagName('BODY')[0]; scrolledY = bodyObj.scrollTop; alert(scrolledY); var crtTop = cartTop + scrolledY; objCart.style.top = crtTop + 'px'; } //fuction to open the cart function OpenCart(cartSize) { if(typeof hs != 'undefined'){ if(hs.forcedim()){ if (CartOpen == false) { var shopCart = document.getElementById('cartCont'); shopCart.style.visibility = 'visible'; shopCart.style.display = 'block'; var teaserBox = document.getElementById('spendTeaser'); if(teaserBox){ var teaserAmt = document.getElementById('tAmt'); if(parseFloat(teaserAmt.innerHTML) > 0){ if(get_cookie('splashOffer') != 2){ teaserBox.style.visibility = 'visible'; }else{ teaserBox.style.visibility = 'hidden'; } } } var tblObj = document.getElementById('cart'); toggleCartTxt(parseFloat(teaserAmt.innerHTML)); } } }else{ if (CartOpen == false) { var shopCart = document.getElementById('cartCont'); shopCart.style.visibility = 'visible'; shopCart.style.display = 'block'; var teaserBox = document.getElementById('spendTeaser'); if(teaserBox){ var teaserAmt = document.getElementById('tAmt'); if(parseFloat(teaserAmt.innerHTML) > 0){ teaserBox.style.visibility = 'visible'; } } var tblObj = document.getElementById('cart'); toggleCartTxt(parseFloat(teaserAmt.innerHTML)); } } return true; } function show_cart_err(err,timeout){ OpenCart(1); clearTimeout(errSt); var errObj = document.getElementById('disp_error'); if(errObj){ errObj.innerHTML = ""+err+""; errSt = setTimeout("hide_cart_err()",timeout?timeout:5000); }else{ alert(err); } } function show_cart_errf(err){ clearTimeout(errSt); var errObj = document.getElementById('disp_error'); errObj.innerHTML = ""+err+""; errSt=setTimeout("hide_cart_err()",5000); } function hide_cart_err(){ var errObj = document.getElementById('disp_error'); errObj.innerHTML = " "; } function showmailResponse(data){ var newData = data; var divObj = document.getElementById('mainConDiv'); while(newData.indexOf('##EQUAL##') > 0){ newData = decodeStr(newData); } divObj.innerHTML = newData; } function sendmail(){ var frmObj = document.forgotpassword; var ajaxVar = new ajaxVars(); ajaxVar.vars['action'] = "runFunction"; ajaxVar.vars['func'] = "sendEmailFriend"; // ajaxVar.vars['from'] = "villagevet "; ajaxVar.vars['from'] = "swati@lizard.sapna"; ajaxVar.vars['to'] = frmObj.user_email.value; ajaxVar.gotoFunction = 'showmailResponse'; ajaxVar.AjaxPostSQL(); } function validate_forgotpassword(){ var frmObj = document.forgotpassword; var errmsg = ""; if(frmObj.user_email.value==""){ errmsg += "Email Address\n"; }else if (!checkEmail(frmObj.user_email.value)){ errmsg += "Invalid E-mail address\n"; } if(errmsg){ msg = "Following fields are empty or not entered correctly:"; alert(msg + '\n\n' + errmsg); }else{ sendmail(); } } function SubscriptionResponse(data){ var newData = data; var divObj = document.getElementById('subscribe_mainConDiv'); while(newData.indexOf('##EQUAL##') > 0){ newData = decodeStr(newData); } divObj.innerHTML = newData; } function subscribeNewsletter(){ var frmObj = document.form_subscribe; var ajaxVar = new ajaxVars(); ajaxVar.vars['action'] = "runFunction"; ajaxVar.vars['func'] = "insertSubscription"; ajaxVar.vars['title'] = frmObj.title.value; ajaxVar.vars['forename'] = frmObj.forename.value; ajaxVar.vars['surname'] = frmObj.surname.value; ajaxVar.vars['email'] = frmObj.email.value; ajaxVar.vars['list_id'] = frmObj.list_id.value; ajaxVar.vars['active'] = frmObj.active.value; ajaxVar.gotoFunction = 'SubscriptionResponse'; ajaxVar.AjaxPostSQL(); } function show_login(obj){ if(obj == 1){ document.getElementById('show_login_box').style.visibility="visible"; document.getElementById('show_login_box').style.display="block"; document.getElementById('show_login_div').style.visibility="hidden"; document.getElementById('show_login_div').style.display="none"; }else{ document.getElementById('show_login_box').style.visibility="hidden"; document.getElementById('show_login_box').style.display="none"; document.getElementById('show_login_div').style.visibility="visible"; document.getElementById('show_login_div').style.display="block"; } } function validate_user_login(){ var obj = document.user_login_data; var errmsg = ""; if (obj.email_address.value == ""){ errmsg += "Your Email\n"; }else if (!checkEmail(obj.email_address.value)){ errmsg += "Invalid E-mail address\n"; } if (obj.password.value == ""){ errmsg += "Your Password\n"; } if(errmsg){ msg = "Following fields are empty or not entered correctly:"; alert(msg + '\n\n' + errmsg); return false; }else{ return true; } } function updateUserResponse(data){ var newData = data; var divObj = document.getElementById('changemainConDiv'); while(newData.indexOf('##EQUAL##') > 0){ newData = decodeStr(newData); } divObj.innerHTML = newData; } function updateUserDetails(){ var frmObj = document.form_changeDetails; var ajaxVar = new ajaxVars(); ajaxVar.vars['action'] = "runFunction"; ajaxVar.vars['func'] = "updateUser"; ajaxVar.vars['title'] = frmObj.title.value; ajaxVar.vars['forename'] = frmObj.forename.value; ajaxVar.vars['surname'] = frmObj.surname.value; ajaxVar.vars['email'] = frmObj.email.value; ajaxVar.vars['address'] = frmObj.address.value; ajaxVar.vars['address_town'] = frmObj.address_town.value; ajaxVar.vars['address_postcode'] = frmObj.address_postcode.value; ajaxVar.vars['address_region'] = frmObj.address_region.value; ajaxVar.gotoFunction = 'updateUserResponse'; ajaxVar.AjaxPostSQL(); } function validate_changeDetails(){ var obj = document.form_changeDetails; var errmsg = ""; if (obj.forename.value == ""){ errmsg += "Your First name\n"; } if (obj.surname.value == ""){ errmsg += "Your Surname\n"; } if (obj.email.value == ""){ errmsg += "Your Email\n"; }else if (!checkEmail(obj.email.value)){ errmsg += "Invalid E-mail address\n"; } if (obj.re_email.value == ""){ errmsg += "Reconfirm Email\n"; }else if (!checkEmail(obj.re_email.value)){ errmsg += "Invalid Reconfirm Email address\n"; }else if (obj.email.value != obj.re_email.value){ errmsg = "Billing Email mismatch\n"; } if (obj.address.value == ""){ errmsg += "Your Address\n"; } if (obj.address_town.value == ""){ errmsg += "Your Town\n"; } if (obj.address_postcode.value == ""){ errmsg += "Your Postcode\n"; } if (obj.address_region.value == ""){ errmsg += "Your Region\n"; } if(errmsg){ msg = "Following fields are empty or not entered correctly:"; alert(msg + '\n\n' + errmsg); }else{ updateUserDetails(); } } function stopEnter() { if (event.keyCode == 13) event.returnValue = false; } function chkHeight(mainDiv,subDiv){ var menuObj = document.getElementById(mainDiv); var parentObj = document.getElementById(subDiv); if(menuObj.offsetHeight > parentObj.offsetHeight){ parentObj.style.height = menuObj.offsetHeight; }else if(parentObj.offsetHeight > menuObj.offsetHeight){ menuObj.style.height = parentObj.offsetHeight; } } function contentHeight(){ // var mainObj = document.getElementById('titleDiv'); // var subObj = document.getElementById('descDiv'); // if(subObj.offsetHeight < 248){ //mainObj.style.height = 248; // } } /* show splash functions */ get_cookie = function(Name){ var re=new RegExp(Name+"=[^;]*", "i"); //construct RE to search for target name/value pair if (document.cookie.match(re)) //if cookie found return document.cookie.match(re)[0].split("=")[1] //return its value return null } function set_cookie(name,value,milliseconds){ if (typeof milliseconds!="undefined"){ //if set persistent cookie var expireDate = new Date(); expireDate.setTime(expireDate.getTime() + milliseconds); document.cookie = name+"="+value+"; path=/; expires="+expireDate.toGMTString(); }else{ //else if this is a session only cookie document.cookie = name+"="+value+"; path=/" } } function showSplashOffer(){ //make session automatically if cookie exists /*if(get_cookie('splashOffer') == 2){ setSplashOffer(); return; }*/ fObj = document.getElementById('offerDiv'); //if(!get_cookie('splashOffer')){ if(typeof fObj == 'object'){ fObj.style.visibility = 'visible'; setTimeout("animatedcollapse.show('offerDiv')",1000); setTimeout("hs.forcedim()",500); } //}else{ //setTimeout("animatedcollapse.hide('offerDiv')",1000); //setTimeout("hs.undim()",500); //} } function setSplashOffer(){ var ajaxVar = new ajaxVars(); ajaxVar.incModule = 'common'; ajaxVar.vars['action'] = "runFunction"; ajaxVar.vars['cookie_accept'] = "2"; ajaxVar.fnVars['cookie_accept'] = "2"; ajaxVar.fnVars['cookie_time'] = 345600000; ajaxVar.vars['func'] = "applySplashOffer"; ajaxVar.vars['nosplit'] = 1; ajaxVar.gotoFunction = 'offerExcepted'; ajaxVar.AjaxPostSQL(); ajaxVar.noLayer = 0; } function closeSplashOffer(){ var ajaxVar = new ajaxVars(); ajaxVar.incModule = 'common'; ajaxVar.vars['action'] = "runFunction"; ajaxVar.vars['cookie_accept'] = "1"; ajaxVar.fnVars['cookie_accept'] = "1"; ajaxVar.fnVars['cookie_time'] = 1800000; ajaxVar.vars['func'] = "applySplashOffer"; ajaxVar.vars['nosplit'] = 1; ajaxVar.gotoFunction = 'offerExcepted'; ajaxVar.AjaxPostSQL(); ajaxVar.noLayer = 0; } function offerExcepted(dataArr,fnVars){ set_cookie('splashOffer',fnVars['cookie_accept'],fnVars['cookie_time']); animatedcollapse.hide('offerDiv'); hs.undim(); } function $$(id){ return document.getElementById(id); } function toggle_country(obj,show_msg){ if(obj){ lblObj = $$(obj.id.replace('-dd','-label')); fldObj = $$(obj.id.replace('-dd','-field')); if(parseFloat(obj.value) == 0){ lblObj.style.visibility = 'hidden'; fldObj.style.visibility = 'hidden'; hideErrMsg('msg_' + obj.id.replace('-dd','-msg')); }else{ lblObj.style.visibility = 'visible'; fldObj.style.visibility = 'visible'; if(show_msg){ var msg_txt = "We can deliver to MOST European destinations, for £50 or less (Germany, France, Benelux: £30 or £40).
"; msg_txt += "This covers consignments of up to 10 kilos gross weight
(allowing for approx 6kgs of fish - the balance is for dry ice to keep your order frozen).
"; msg_txt += "Delivery is by UPS and will arrive within 24 hours of despatch.
"; msg_txt += "If, due to weight or destination, your charge is higher,
we will contact you within 24 hours of receiving your order,
offering you the choice of paying a surcharge or cancelling your order with a full refund."; inlineErrMsg(obj.id.replace('-dd','-msg'),obj.id,msg_txt,16,obj.id,1); } } } }