NS4 = (document.layers) ? 1 : 0; IE4 = (document.all) ? 1 : 0; DOM = (document.getElementById) ? 1 : 0; ver4 = (NS4 || IE4) ? 1 : 0; VOUCHERS_CATID = 17; //Events Functions //------------------------------------------------------ function addEvent( obj, type, fn ) { if ( obj.attachEvent ) { obj['e'+type+fn] = fn; obj[type+fn] = function(){obj['e'+type+fn]( window.event );} obj.attachEvent( 'on'+type, obj[type+fn] ); } else obj.addEventListener( type, fn, false ); } function removeEvent( obj, type, fn ) { if ( obj.detachEvent ) { obj.detachEvent( 'on'+type, obj[type+fn] ); obj[type+fn] = null; } else obj.removeEventListener( type, fn, false ); } //------------------------------------------------------ //Layers Functions //------------------------------------------------------ //function display layer function showLayer(idlayer){ //makes visible the specified layer (div) if (NS4) document.layers[idlayer].style.display = "inline"; else if (DOM) document.getElementById(idlayer).style.display = "inline"; else document.all[idlayer].style.display = "inline"; } //function hide layer function hideLayer(idlayer){ //hides the specified layer (div) if (NS4) document.layers[idlayer].style.display = "none"; else if (DOM) document.getElementById(idlayer).style.display = "none"; else document.all[idlayer].style.display = "none"; } //End Layers Functions //------------------------------------------------------ //Start Ajax functions //------------------------------------------------------ var bustcachevar=1; //bust potential caching of external pages after initial request? (1=yes, 0=no) var bustcacheparameter=""; function ajaxpage(url, containerid) { var page_request = false; if (window.XMLHttpRequest) // if Mozilla, Safari etc page_request = new XMLHttpRequest(); else if (window.ActiveXObject) { // if IE try { page_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try{ page_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){} } } else return false; page_request.onreadystatechange=function() { loadpage(page_request, containerid); } if (bustcachevar) //if bust caching of external page bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime(); page_request.open('GET', url+bustcacheparameter, true); page_request.send(null); } function loadpage(page_request, containerid) { if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)) document.getElementById(containerid).innerHTML=page_request.responseText; } //End Ajax functions //------------------------------------------------------ //General javascript functions //------------------------------------------------------ function isEmpty(vstr) { //first replace all spaces, tabs, enters with nothing vstr=vstr.replace(/ /gi,""); vstr=vstr.replace(/\t/gi,""); vstr=vstr.replace(/\n/gi,""); vstr=vstr.replace(/\r/gi,""); if (vstr.length==0) return true; //the string is empty (or filled with spaces, tabs etc) else return false; } function trim(stringToTrim) { return stringToTrim.replace(/^\s+|\s+$/g,""); } function myIsIntPos(vstr) { //check if vstr is integer var reg=/^\d+$/; if (reg.exec(vstr) == null) return false; else return true; } function isNum(vstr) { if (isNaN(vstr) || vstr < 0) return false; //vstr is not a number, or negative else return true; } function check_date(date_field) { var validformat=/^\d{2}\-\d{2}\-\d{4}$/ //Basic check for format validity if (!validformat.test(date_field)) return false; //incorect format else { //Detailed check for valid date ranges var monthfield = date_field.split("-")[1]; var dayfield = date_field.split("-")[0]; var yearfield = date_field.split("-")[2]; //in Javascript months are from 0 to 11, not from 1 to 12 var dayobj = new Date(yearfield, monthfield-1, dayfield); if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield)) return false; } return true; } function is_future_date(date_field) { //check if date_field is a future date (>=current date) var monthfield = date_field.split("-")[1]; var dayfield = date_field.split("-")[0]; var yearfield = date_field.split("-")[2]; //in Javascript months are from 0 to 11, not from 1 to 12 var dayobj = new Date(yearfield, monthfield-1, dayfield); var crt_date = new Date(); //set to 0 hh/mm/ss for current date to be comparable with dayobj (which has hh/mm/ss = 00/00/00) crt_date.setHours(0); crt_date.setMinutes(0); crt_date.setSeconds(0); var daysApart = Math.round((dayobj - crt_date)/86400000); if (daysApart>=0) return true; //is a future date else return false; } function is_in_array(source_str, id_to_find) { //checks if the value @id_to_find is in array obtained from @source_str (with , as delimiter) var source_array = eval('['+source_str+']'); var vb_inarray = false; for (var i=0; imlength) obj.value=obj.value.substring(0,mlength); } //End General javascript functions //------------------------------------------------------ //------------------------------------------------------ //search box functions function cleanEl(formelement) { // checks form element input value if(formelement.value == formelement.defaultValue) { formelement.value = ""; } } function checkEl(formelement) { // checks form element input value if(formelement.value == "") { formelement.value = formelement.defaultValue; } } //------------------------------------------------------ //Prices and quantities (PAWs Shop) functions //------------------------------------------------------ function refresh_price_divs(cbo,opt_id) { //in product details page, when changing the option that determines the price var dyna_price_div; var opt_value; var element; var price; for (var i=0;i=6 chars v_field=document.frm_reg.usr_password; str=v_field.value; if (isEmpty(str) || str.length<6) {alert("Your password is required and must be at least 6 characters long. You will need this to Login to PAWs Shop."); v_field.focus();return false;} //confirm password (to be equal to password) v_field1=document.frm_reg.usr_password1; str1=v_field1.value; if (isEmpty(str1) || str!=str1) {alert("The passwords are different!"); v_field.focus();return false;} //hint required v_field=document.frm_reg.usr_hint; str=v_field.value; if (isEmpty(str)) {alert("Password hint is required!"); v_field.focus();return false;} //captcha verification v_field=document.frm_reg.vImageCodP; str=v_field.value; if (isEmpty(str)) {alert("Please enter the Anti Spam Code!"); v_field.focus();return false;} document.frm_reg.submit(); } function check_user_signin() { //email required var v_field=document.frm_sign.usr_email; var str=v_field.value; if (isEmpty(str)) {alert("Email is required!"); v_field.focus();return false;} //password required v_field=document.frm_sign.usr_password; str=v_field.value; if (isEmpty(str)) {alert("Your password is required!"); v_field.focus();return false;} document.frm_sign.submit(); } function check_user_change_details() { //name required var v_field=document.frm_reg.usr_name; var str=v_field.value; if (isEmpty(str)) {alert("Name is required!"); v_field.focus();return false;} //email required v_field=document.frm_reg.usr_email; str=v_field.value; if (isEmpty(str)) {alert("Your email address is required! You will need this to Login to Pawsawhile."); v_field.focus();return false;} //confirm email (to be equal to email) var v_field1=document.frm_reg.usr_email1; var str1=v_field1.value; if (isEmpty(str1) || str!=str1) {alert("The email addresses are different!"); v_field.focus();return false;} document.frm_reg.submit(); } function check_user_change_pass() { //old password required var v_field=document.frm_reg.old_password; var str=v_field.value; if (isEmpty(str)) {alert("You need to type your current password, otherwise you are not allowed to change it!"); v_field.focus();return false;} //New password required & >=6 chars v_field=document.frm_reg.usr_password; str=v_field.value; if (isEmpty(str) || str.length<6) {alert("Your password is required and must be at least 6 characters long. You will need this to Login to Pawsawhile."); v_field.focus();return false;} //confirm password (to be equal to password) v_field1=document.frm_reg.usr_password1; str1=v_field1.value; if (isEmpty(str1) || str!=str1) {alert("The passwords are different!"); v_field.focus();return false;} //hint required v_field=document.frm_reg.usr_hint; str=v_field.value; if (isEmpty(str)) {alert("Password hint is required!"); v_field.focus();return false;} document.frm_reg.submit(); } function benefits_div(div_name) { //shows or hide info_pink_div/ info_shop_div/ info_site_div depending on link switch (div_name) { case 'info_pink_div': showLayer('info_pink_div'); hideLayer('info_shop_div'); hideLayer('info_site_div'); break; case 'info_shop_div': showLayer('info_shop_div'); hideLayer('info_pink_div'); hideLayer('info_site_div'); break; case 'info_site_div': showLayer('info_site_div'); hideLayer('info_shop_div'); hideLayer('info_pink_div'); break; } } function benefits_close_div(div_name) { //hides the div with info hideLayer(div_name); } //End User Register functions //------------------------------------------------------ function check_email() { //email required v_field=document.frm_reg.usr_email; str=v_field.value; if (isEmpty(str)) {alert("Your email address is required!"); v_field.focus();return false;} else document.frm_reg.submit(); } //Address functions //------------------------------------------------------ function address_verification(form_name, addr_type, prefix) { //checks an address to be correct //street address is required var v_field=eval('document.'+form_name+'.'+prefix+'addr_street'); var str=v_field.value; if (isEmpty(str)) {alert("Street address is required!"); v_field.focus();return false;} v_field=eval('document.'+form_name+'.'+prefix+'addr_suburb'); str=v_field.value; if (isEmpty(str)) {alert("Suburb / Town is required!"); v_field.focus();return false;} v_field=eval('document.'+form_name+'.'+prefix+'addr_country'); var country=v_field.value; if (isEmpty(country)) {alert("Country is required!"); v_field.focus();return false;} /* v_field=eval('document.'+form_name+'.'+prefix+'addr_state'); str=v_field.value; //if country not US nor AU, check the state field if ((country!='Australia' && country!='United States') && isEmpty(str)) {alert("State is required!"); v_field.focus();return false;} v_field=eval('document.'+form_name+'.'+prefix+'addr_postcode'); str=v_field.value; if (isEmpty(str)) {alert("Postcode is required!"); v_field.focus();return false;} */ if (addr_type!='S') { //if not a shipping address, the main phone is required v_field=eval('document.'+form_name+'.'+prefix+'addr_phone1'); str=v_field.value; if (isEmpty(str)) {alert("Main phone is required!"); v_field.focus();return false;} } return true; } function check_address(form_name, addr_type) { //checks if the address (in add/edit mode) is valid if (address_verification(form_name, addr_type, '')) eval('document.'+form_name+'.submit();'); else return false; } function new_cust_check_address(form_name) { //checks if the shipping type, Recipient's name and the address(es) are valid var ship_type=eval('document.'+form_name+'.ship_type'); var vb_ship = false; for (var i=0;i