var CartOpen = false; 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){ 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 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('cartAlign'); var objCart = document.getElementById('cartCont'); var leftX = findPosX(objCartAlign); var topY = findPosY(objCartAlign); objCart.style.top = (topY - 50) +'px'; objCart.style.left = leftX +'px'; 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 shopCartLoad() { var objCartAlign = document.getElementById('cartAlign'); var objCart = document.getElementById('cartCont'); document.getElementById('prodTable').style.visibility='visible'; var leftX = findPosX(objCartAlign); var topY = findPosY(objCartAlign); objCart.style.top = (topY - 50)+'px'; objCart.style.left = leftX+'px'; cartTop = topY - 50; var browser = new Browser(); } function MoveShopCart(){ // alert(1); var scrolledX, scrolledY; var objCart = document.getElementById('cartCont'); // var bodyObj = document.getElementsByTagName('BODY')[0]; //old site Documenttype var bodyObj = document.documentElement; if(objCart){ scrolledY = bodyObj.scrollTop; var crtTop = cartTop + scrolledY; objCart.style.top = crtTop + 'px'; } } function MoveShopCartOld() { var scrolledX, scrolledY; var objCart = document.getElementById('cartCont'); if (objCart.style.visibility == 'visible') { var browser = new Browser(); if( self.pageYOffset ) { scrolledX = self.pageXOffset; scrolledY = self.pageYOffset; } else if( document.documentElement && document.documentElement.scrollTop ) { if (browser.isIE) { scrolledX = document.documentElement.scrollLeft; scrolledY = document.documentElement.scrollTop; }else if (browser.isNS) { scrolledX = window.scrollX; scrolledY = window.scrollY; } } else if( document.body ) { if (browser.isIE) { scrolledX = document.body.scrollLeft; scrolledY = document.body.scrollTop; }else if (browser.isNS) { scrolledX = window.scrollX; scrolledY = window.scrollY; } } var topY = findPosY(objCart); if (topY(screen.availHeight - scrolledY)) { var topOffset = ((scrolledY + screen.availHeight) - 300); }else if (topY>(screen.availHeight - 300)){ var topOffset = ((screen.availHeight) - 300); }else{ var topOffset = topY; } objCart.style.top = topOffset + "px"; } } //fuction to open the cart function OpenCart() { if (CartOpen == false) { var shopCart = document.getElementById('cartCont'); shopCart.style.visibility = 'visible'; shopCart.style.display = 'block'; } } 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 stopEnter() { if (event.keyCode == 13) event.returnValue = false; } function change_code(objval){ document.getElementById('prod_code').innerHTML = objval; } function change_codemulti(objval,objname){ document.getElementById('prod_code_'+ objname).innerHTML = objval; } function change_color_val(objcolor){ document.getElementById('color_val').value = objcolor; } function change_color_valMultiple(objcolor, prodId){ document.getElementById('color_val_'+ prodId).value = objcolor; } function change_color_valmulti(objcolor,objname){ document.getElementById('color_val_'+ objname).value = objcolor; } function search_validation(){ if(document.search_frm.search_val.value == ' Search for some thing...' || document.search_frm.search_val.value == '' ){ alert('Please enter the search text'); return false; }else{ return true; } } function pass_msg(){ document.getElementById('message_val').value = document.getElementById('message').value; } // check multi checkboxes based on the name passed in. function CheckMultiple(name) { theFrm = document.frmSS; for(var i=0; i < theFrm.length; i++) { fldObj = theFrm.elements[i]; var fieldnamecheck=fldObj.name.indexOf(name); if (fieldnamecheck != -1) { if (fldObj.checked) { return true; } } } return false; } function CheckSS(){ theFrm = document.frmSS; hasDot = theFrm.Email.value.indexOf("."); hasAt = theFrm.Email.value.indexOf("@"); if (hasDot == -1 || hasAt == -1){ alert("Please enter a valid email address."); theFrm.Email.focus(); theFrm.Email.select(); return false; } valcheck = document.getElementById("Fields[2]"); if(valcheck.value == "") { alert("Please enter a value for the 'Contact First Name' field."); valcheck.focus(); valcheck.select(); return false; }else{ var minsize_2 = 0; var maxsize_2 = 100; var fieldlength = 0; fieldlength = valcheck.value.length; if(fieldlength < minsize_2) { alert("You must enter a value for the 'Contact First Name' field longer than " + minsize_2 + " characters"); valcheck.focus(); return false; } if (fieldlength > maxsize_2) { alert("You must enter a value for the 'Contact First Name' field no longer than " + maxsize_2 + " characters"); valcheck.focus(); return false; } } return true; } function Check_sub(){ var obj = document.frm_sub; var errmsg = ""; if (obj.email_address.value == ""){ errmsg += "E-mail address\n"; }else if (!checkEmail(obj.email_address.value)){ errmsg += "Invalid E-mail address\n"; } if(errmsg){ msg = "Following fields are empty or not entered correctly:"; alert(msg + '\n\n' + errmsg); return false; }else{ return true; } } function showBox(objVal){ if(objVal.value == 9 || objVal.value == 'S'){ document.getElementById('issueNoCap').style.visibility = 'visible'; document.getElementById('issueNoCap').style.display = 'block'; document.getElementById('issueNoVal').style.visibility = 'visible'; document.getElementById('issueNoVal').style.display = 'block'; }else{ document.getElementById('issueNoCap').style.visibility = 'hidden'; document.getElementById('issueNoCap').style.display = 'none'; document.getElementById('issueNoVal').style.visibility = 'hidden'; document.getElementById('issueNoVal').style.display = 'none'; } } window.onscroll=MoveShopCart; function ShowBilling(objVal){ if(objVal == 1){ document.getElementById('shipInfo').style.visibility = 'visible'; document.getElementById('shipInfo').style.display = 'block'; document.getElementById('yesImg').src = 'images/uncheck1.gif'; document.getElementById('noImg').src = 'images/check2.gif'; document.Confirm_form.ship_mode.value = 0; }else{ document.getElementById('shipInfo').style.visibility = 'hidden'; document.getElementById('shipInfo').style.display = 'none'; document.getElementById('yesImg').src = 'images/check1.gif'; document.getElementById('noImg').src = 'images/uncheck2.gif'; document.Confirm_form.ship_mode.value = 1; } } function validate(){ var Objform = document.getElementById('Confirm_form'); var msg = ""; // if(document.Confirm_form.total_qty.value=='0'){ // msg += "You have not selected any Item.\n"; // } if(document.Confirm_form.first_name.value==''){ msg += "First Name\n"; document.Confirm_form.first_name.focus(); } if(document.Confirm_form.last_name.value==''){ msg += "Last Name\n"; document.Confirm_form.last_name.focus(); } if(document.Confirm_form.password){ if (document.Confirm_form.password.value==''){ msg += "Password\n"; document.Confirm_form.password.focus(); } if (document.Confirm_form.re_password.value==''){ msg += "Confirm Password\n"; document.Confirm_form.re_password.focus(); } var value1,value2; value1 = document.Confirm_form.password.value; value2 = document.Confirm_form.re_password.value; if ((document.Confirm_form.password.value!='') && (document.Confirm_form.re_password.value!='')){ if (value1!=value2){ msg += "Password mismatch\n"; } } } if (document.Confirm_form.email.value==''){ msg += "Email\n"; document.Confirm_form.email.focus(); }else if (!checkEmail(document.Confirm_form.email.value)){ msg += "Email is invalid\n"; } if (document.Confirm_form.re_email.value==''){ msg += "Reconfirm Email\n"; document.Confirm_form.re_email.focus(); }else if (!checkEmail(document.Confirm_form.re_email.value)){ msg += "Reconfirm Email is invalid\n"; }else if (document.Confirm_form.email.value != document.Confirm_form.re_email.value){ msg += "Email mismatch\n"; } if (document.Confirm_form.address.value==''){ msg += "Address\n"; document.Confirm_form.address.focus(); } if (document.Confirm_form.post_code.value==''){ msg += "Postcode\n"; document.Confirm_form.post_code.focus(); } if (document.Confirm_form.city.value==''){ msg += "City\n"; document.Confirm_form.city.focus(); } if (document.Confirm_form.country.value==''){ msg += "City\n"; document.Confirm_form.country.focus(); } if (document.Confirm_form.phone_number.value==''){ msg += "Phone Number\n"; document.Confirm_form.phone_number.focus(); } if (document.Confirm_form.find_out.value==''){ msg += "Where did you find out about Giftlab\n"; document.Confirm_form.find_out.focus(); } // validate shipping details var Obj = document.getElementById('shipInfo'); if (Obj.style.visibility=='visible'){ if (document.Confirm_form.shipfirst_name.value==''){ msg += "Shipping First Name\n"; document.Confirm_form.shipfirst_name.focus(); } if (document.Confirm_form.shiplast_name.value==''){ msg += "Shipping Last Name\n"; document.Confirm_form.shiplast_name.focus(); } if (document.Confirm_form.shipemail.value==''){ msg += "Shipping Email\n"; document.Confirm_form.shipemail.focus(); }else if(!checkEmail(document.Confirm_form.shipemail.value)){ msg += "Shipping Invalid Email\n"; } if (document.Confirm_form.re_shipemail.value==''){ msg += "Reconfirm Shipping Email\n"; document.Confirm_form.re_shipemail.focus(); }else if(!checkEmail(document.Confirm_form.re_shipemail.value)){ msg += "Reconfirm Shipping Email is invalid\n"; }else if (document.Confirm_form.shipemail.value != document.Confirm_form.re_shipemail.value){ msg += "Shipping Email mismatch\n"; } if (document.Confirm_form.shipaddress.value==''){ msg += "Shipping Address\n"; document.Confirm_form.shipaddress.focus(); } if (document.Confirm_form.shippost_code.value==''){ msg += "Shipping Postcode\n"; document.Confirm_form.shippost_code.focus(); } if (document.Confirm_form.sphone_number.value==''){ msg += "Shipping Phone Number\n"; document.Confirm_form.sphone_number.focus(); } if (document.Confirm_form.shipcity.value==''){ msg += "Shipping City\n"; document.Confirm_form.shipcity.focus(); } if (document.Confirm_form.shipcountry.value==''){ msg += "Shipping Country\n"; document.Confirm_form.shipcountry.focus(); } } if (msg != ""){ msg = "Following fields are either empty or not entered properly: \n" + msg; alert(msg); }else{ document.Confirm_form.submit(); } } function showDelivery(){ var totCostAmt = document.getElementById('final_total').innerHTML; var ExtraDeli = document.getElementById('nextDelv').innerHTML; var divObj = document.getElementById('showDel'); if(document.getElementById('nextDay').checked == true){ var finalTot = parseFloat(totCostAmt)+ parseFloat(ExtraDeli); divObj.style.visibility = 'visible'; divObj.style.display = 'block'; }else{ var finalTot = parseFloat(totCostAmt) - parseFloat(ExtraDeli); divObj.style.visibility = 'hidden'; divObj.style.display = 'none'; } document.getElementById('final_total').innerHTML = format_number(finalTot,2,'.','.'); }