var win= null;
function NewWindow(mypage,myname,w,h,scroll){
var winl = (screen.width-w)/2;
var wint = (screen.height-h)/2;
var settings ='height='+h+',';
settings +='width='+w+',';
settings +='top='+wint+',';
settings +='left='+winl+',';
settings +='scrollbars='+scroll+',';
settings +='resizable=yes';
win=window.open(mypage,myname,settings);
if(parseInt(navigator.appVersion) >= 4){win.window.focus();}
}

function confirmation(url, message){
	var answer = confirm(message)
	if (answer){
		window.location = url;
	}
}

function verify_quantity(qty) {
 qty_value = qty.value.replace(/^\s+|\s+$/g,"");
 if(qty_value=="") {
  alert('You did not enter quantity!');
  qty.focus();
  return false;
 }
 else {
  if(qty_value.search(/^\d{1,4}$/g)==-1) {
   alert('Wrong quantity!');
   qty.focus();
   return false;
  }
  else {
   return true;
  }
 }
}

function update_ship_field(form_name,field_name) {
 if(eval('document.'+form_name+'.same_as_bill.checked==true')) {
  eval('document.'+form_name+'.ship_'+field_name+'.value = document.'+form_name+'.bill_'+field_name+'.value');
 }
}

function update_ship_list(form_name,list_name) {
 if(eval('document.'+form_name+'.same_as_bill.checked==true')) {
  eval('document.'+form_name+'.ship_'+list_name+'.selectedIndex = document.'+form_name+'.bill_'+list_name+'.selectedIndex');
 }
}

function set_ship_info(form_name) {
 eval('form = document.'+form_name);
 if(form.same_as_bill.checked==true) {
  form.ship_firstname.value = form.bill_firstname.value;
  form.ship_firstname.readOnly = true;
  form.ship_lastname.value = form.bill_lastname.value;
  form.ship_lastname.readOnly = true;
  form.ship_oraganization.value = form.bill_oraganization.value;
  form.ship_oraganization.readOnly = true;
  form.ship_address.value = form.bill_address.value;
  form.ship_address.readOnly = true;
  form.ship_city.value = form.bill_city.value;
  form.ship_city.readOnly = true;
  form.ship_province_state.selectedIndex = form.bill_province_state.selectedIndex;
  form.ship_province_state.readOnly = true;
  form.ship_region.value = form.bill_region.value;
  form.ship_region.readOnly = true;
  form.ship_country.selectedIndex = form.bill_country.selectedIndex;
  form.ship_country.readOnly = true;
  form.ship_postal_zip.value = form.bill_postal_zip.value;
  form.ship_postal_zip.readOnly = true;
  form.ship_phone.value = form.bill_phone.value;
  form.ship_phone.readOnly = true;
  form.ship_fax.value = form.bill_fax.value;
  form.ship_fax.readOnly = true;
  form.ship_submit_by.value = form.bill_submit_by.value;
  form.ship_submit_by.readOnly = true;
 }
 else {
  form.ship_firstname.value = '';
  form.ship_firstname.readOnly = false;
  form.ship_lastname.value = '';
  form.ship_lastname.readOnly = false;
  form.ship_oraganization.value = '';
  form.ship_oraganization.readOnly = false;
  form.ship_address.value = '';
  form.ship_address.readOnly = false;
  form.ship_city.value = '';
  form.ship_city.readOnly = false;
  form.ship_province_state.selectedIndex = 0;
  form.ship_province_state.readOnly = false;
  form.ship_region.value = '';
  form.ship_region.readOnly = false;
  form.ship_country.selectedIndex = 0;
  form.ship_country.readOnly = false;
  form.ship_postal_zip.value = '';
  form.ship_postal_zip.readOnly = false;
  form.ship_phone.value = '';
  form.ship_phone.readOnly = false;
  form.ship_fax.value = '';
  form.ship_fax.readOnly = false;
  form.ship_submit_by.value = '';
  form.ship_submit_by.readOnly = false;
 }
}

function format_number(num) {
 num = num + '';
 parts = num.split(".");
 if(parts.length==2) {
  if(parts[1].length==1) {
   number = num + '0';
  }
  else {
   if(parts[1].length==2) {
	number = num;
   }
   else {
	if(parts[1].substr(0,1)=="0") {
	 number = parts[0] + '.0' + Math.round(parseInt(parts[1].substr(1,2))/10);
	}
	else {
	 number = parts[0] + '.' + Math.round(parseInt(parts[1].substr(0,3))/10);
	}
   }
  }
 }
 else {
  number = num + '.00';
 }
 return number;
}

function calculate_shipping(total,handling,gst,pst,rates) {
 selected_index = document.order_form.shipping.selectedIndex;
 rates_vals = new Array();
 for(i=0;i<=rates.length-1;i=i+2) {
  rates_vals[rates[i]+1] = rates[i+1];
 }
 if(selected_index!=0) {
  shipping = rates_vals[selected_index];
  document.getElementById('Shipping').innerHTML = '$' + format_number(shipping);
  new_total = total + shipping;
  document.getElementById('Total').innerHTML = format_number(new_total);
 }
 else {
  document.getElementById('Shipping').innerHTML = '.......';
  document.getElementById('Total').innerHTML = format_number(total);
 }
}

function show_hide_sign_up_fields() {
 if(document.getElementById('SignUpFields').style.display=='inline') {
  document.getElementById('SignUpFields').style.display = 'none';
 }
 else {
  document.getElementById('SignUpFields').style.display = 'inline';
 }
}

function resize_font(action) {
 //delete_cookie('fontsize');
 if(action=='bigger') {
  setStyleById('inner_content','fontSize','12px','#ffffff',1)
  setStyleById('inner_content','color','#000000',1)
  set_cookie('fontsize','bigger',30,'/')
 }
 else {
  if(action=='smaller') {
   setStyleById('inner_content','fontSize','10px',1)
   setStyleById('inner_content','color','#666666',1)
   set_cookie('fontsize','smaller',30,'/')
  }
 }
}

function set_cookie(name,value,duration,path,domain,secure) {
 if(typeof duration == "number") {
  date = new Date();
  date.setTime(date.getTime()+(duration*24*60*60*1000));
  expires = date.toGMTString();
 }
 document.cookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");
}

function get_cookie(name) {
 n = name + "=";
 array = document.cookie.split(';');
 for(i=0;i<array.length;i++) {
  c = array[i];
  while(c.charAt(0)==' ') {
   c = c.substring(1,c.length);
  }
  if(c.indexOf(n)==0) {
   return unescape(c.substring(n.length,c.length));
  }
 }
 return null;
}

function delete_cookie(name) {
 document.cookie = name + "=; expires=Thu, 01-Jan-70 00:00:01 GMT" + "; path=/";
}

function get_m(m) {
 ma = "";
 at = "@";
 if(m==1) {
  ma += "info";
  ma += at;
  ma += "freshbreath.ca";
 }
 if(m==2) {
  ma += "feedback";
  ma += at;
  ma += "freshbreath.ca";
 }
 if(m==3) {
  ma += "angellabs";
  ma += at;
  ma += "freshbreath.ca";
 }
 if(m==4) {
  ma += "webmaster";
  ma += at;
  ma += "freshbreath.ca";
 }
 return ma;
}

function rowOverEffect(object) {
				//alert (object.bgColor);
	if (object.bgColor != '#e8e8e8') {
		//previous_bgcolor = object.bgColor;
		object.previous_bgcolor = object.bgColor;
		object.bgColor = '#e8e8e8';
	}
}

function rowOutEffect(object) {
	if (object.bgColor == '#e8e8e8') object.bgColor = object.previous_bgcolor;
}

function check_comments_fields(captcha_required)
{
	var err_msg = '';
	if(captcha_required) {
		required_fields = new Array('gallery_id', 'title', 'comment', 'captcha_input');
	} else {
		required_fields = new Array('gallery_id', 'title', 'comment');
	}
	
	for (var i = 0; i < required_fields.length; i++) {
		field = document.getElementById(required_fields[i]);
		if(document.getElementById(required_fields[i] + '_label')) {
			if(!trim(field.value) ) {
				err_msg += '- ' + document.getElementById(required_fields[i] + '_label').firstChild.nodeValue + ' is required\n';
				document.getElementById(required_fields[i] + '_label').style.color = "red";
			} else {
				document.getElementById(required_fields[i] + '_label').style.color = "#000000";
			}
		} else {
			if(!trim(field.value) ) {
				err_msg += '- ' + document.getElementById(required_fields[i]).name + ' is required\n';
			}
		}
	}
	if( err_msg !='') {
    	err_msg = 'The items below require your attention:\n' + err_msg + '\n';
        alert (err_msg);
        return false;
    }
    return true;
}

function check_category_name(element)
{
	if( !trim(document.getElementById('category').value) ) {
    	err_msg = 'The items below require your attention:\nGallery Name is required\n';
        alert (err_msg);
        return false;
    }
    return true;
}

/**
*   Check if e-mail is valid
*/
function IsEmail(Email, required)
{
	element = trim(document.getElementById(Email).value);
    if(element.length!='') {
        if ( !element.match(/^[a-zA-Z0-9._%-]+@(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4}$/) ) {
		alert('Email is not valid!\n');
        	return false;
        } else {
            return true;
        }
    } else {
        if (required) {
        	alert('The items below require your attention:\nE-mail is required\n');
        	return false;
        } else {
    		return true;
        }
    }
}

/** Check if e-mail is valid */
function IsEmailValid(Email)
{
    if(Email.length!='') {
        if ( !Email.match(/^[a-zA-Z0-9._%-]+@(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4}$/) ) {
            return false;
        } else {
            return true;
        }
    } else {
        return true;
    }
}

function trim(str)
{
     s = str.replace(/^(\s)*/, '');
     s = s.replace(/(\s)*$/, '');
     return s;
}

function submit_request()
{
	var err_msg = '';
	required_fields = new Array('nameFirst', 'nameLast', 'phone', 'submit_by');
	for (var i = 0; i < required_fields.length; i++) {
		if(!trim(document.getElementById(required_fields[i]).value) ) {
			err_msg += '- ' + document.getElementById(required_fields[i] + '_label').firstChild.nodeValue + ' is required\n';
			document.getElementById(required_fields[i] + '_label').style.color = "red";
		} else if(required_fields[i]=='submit_by') {
			if( !IsEmailValid( document.getElementById(required_fields[i]).value) ) {
				err_msg += '- ' + document.getElementById(required_fields[i] + '_label').firstChild.nodeValue + ' is not valid\n';
				document.getElementById(required_fields[i] + '_label').style.color = "red";
			} else { 
				document.getElementById(required_fields[i] + '_label').style.color = "#000000";
			}
		} else {
			document.getElementById(required_fields[i] + '_label').style.color = "#000000";
		}
	}
   	if( err_msg !='') {
    	err_msg = 'The items below require your attention:\n' + err_msg + '\n';
        alert (err_msg);
        return false;
    } else {
    	return true;
    }
}

/* Function: This Does a Javascript confirm */
function delete_confirmation(form_prefix, form_name_id, item_name) {
    var answer = confirm('Are you sure you want to delete this ' + item_name + '?')
    if (answer){
       if( deleted_form = document.getElementById(form_prefix + form_name_id) ) {
       		deleted_form.submit();
       }
    }
}

function confirmation_return(message){
	var answer = confirm(message)
//	if (answer){
//		window.location = url;
//	}
    return answer;
}

function display_all(theElement, checkbox_name_default, not_affected_id)
{
	var theForm = theElement.form, z = 0;
	if(!not_affected_id) {
		not_affected_id = 0;
	}
//	var theForm = getElementById("product_form");
     //var checkbox_name_default = 'projects_letters';
	 for(z=0; z<theForm.length;z++){
	      if(theForm[z].type == 'checkbox' && theForm[z].name.indexOf(checkbox_name_default)!=-1 && theForm[z].value!=not_affected_id) {
		  	theForm[z].checked = theElement.checked;
		  }
     }
}

// Check if all checkboxes are checked (used in search on front)
function all_checked(theElement, check_all_name)
{
	var theForm = theElement.form, z = 0;
    var checked_all = true;
	for(z=0; z<theForm.length;z++){
	      if(theForm[z].type == 'checkbox' && theForm[z].name!=check_all_name && !theForm[z].checked) {
		  	   checked_all = false;
		  	   break;
		  }
    }
    return checked_all;
}

/**
* Load large image to the gallery
*/
function loadImage(number) {
	$("#largeImage").fadeTo("normal",0, changeImage);
	image['current']=number;
}

function changeImage() {
    this.src=image[ image['current'] ].src;
	this.alt=image[ image['current'] ].alt;
	this.title=image[ image['current'] ].alt;
	this.img_id=image[ image['current'] ].img_id;
	document.getElementById("largeImageCaption").innerHTML = image[ image['current'] ].caption;
	$("#largeImage").fadeTo("normal",1);
	// Change URL for contact and wish list to display selected image
	
	var contact = document.getElementById("contact-request");
	if (contact.href.toString().indexOf('&') != -1) { var path = contact.href.toString().split('&')[0]; } else {var path = contact.href}
	contact.href = path + "&img_id="+this.img_id;
	//contact.href = path + "_" + this.img_id;
	
	var wish_list = document.getElementById("wish-list");
	if (wish_list.href.toString().indexOf('&') != -1) { var path = wish_list.href.toString().split('&')[0]; } else {var path = wish_list.href}
	wish_list.href= path + "&img_id="+this.img_id;
	//wish_list.href= path + "_" + this.img_id;
}

function display_selected_image()
{
   if (document.location.toString().indexOf('#') != -1) { var image_id = document.location.toString().split('#')[1].split('=')[1]; }
   if (image_id) { for (x = 0; x < image.length; x++) { if (parseInt(image[x].img_id) == parseInt(image_id)) {loadImage(x);break;}}} else {loadImage(0);}
}

function toggle_collections(how) {
    var collections_div = document.getElementById('collections_div');
    if (collections_div) {
        if (typeof how == 'undefined') {
            if (collections_div.style.display=="") {
                collections_div.style.display = "none";
            } else {
                collections_div.style.display="";
                window.setTimeout(function(){listen_for_clickoff();}, 50);
            }
        } else {
            if (how == true) {
                collections_div.style.display = "";
                window.setTimeout(function(){listen_for_clickoff();}, 50);
            } else if (how == false) {
                collections_div.style.display = "none";
            }
        }
    }
}

function toggle_filterby(how) {
    var filterby_div = document.getElementById('popupElement1');
    if (filterby_div) {
        if (typeof how == 'undefined') {
            if (filterby_div.style.display=="") {
                filterby_div.style.display = "none";
            } else {
                filterby_div.style.display="";
                window.setTimeout(function(){listen_for_clickoff();}, 50);
            }
        } else {
            if (how == true) {
                filterby_div.style.display = "";
                window.setTimeout(function(){listen_for_clickoff();}, 50);
            } else if (how == false) {
                filterby_div.style.display = "none";
            }
        }
    }
}

var listen_for_clickoff = function() {
    document.body.onclick = function(e) {
        if (typeof e != "undefined") {
            var event = e;
        } else if (typeof event != "undefined") {
            var event = event;  // Rudundant redundancy
        } else if (typeof window.event != "undefined") {
            var event = window.event;
        }
        
        if (typeof event.srcElement != "undefined") {
            source = event.srcElement.tagName.toUpperCase();
            id = event.srcElement.id.toUpperCase();
        } else if (typeof event.originalTarget != "undefined") {
            source = event.originalTarget.tagName.toUpperCase();
            id = event.originalTarget.id.toUpperCase();
        }
        
        if ((source == 'DIV' || source == 'BODY' || source == 'TD' ||
            source == 'TR' || source == 'TABLE' || source == 'TBODY' ||
            source == 'IMG' || source == 'OBJECT') && id != "POPUPELEMENT1")
        {
            toggle_collections(false);
            toggle_filterby(false);
            document.body.onclick = function(){};
        }
    }
};

if (typeof console == "undefined") {
    var console = {
        log:function(text) {
            alert(text);
        }
    }
}

dont_close_me = function (e) {
    if (typeof e != "undefined") {
        var event = e;
    } else if (typeof event != "undefined") {
        var event = event;  // Rudundant redundancy
    } else if (typeof window.event != "undefined") {
        var event = window.event;
    }
    if (typeof event != "undefined") {
        event.cancelBubble = true;
        if (typeof event.stopPropagation != "undefined") {
            event.stopPropagation();
        }
    }
};
