//contains common displays (address, distance, etc)
//common_dom.js also needs to be included

if (!Array.prototype.push) Array.prototype.push = function() {
    for (var i=0; i<arguments.length; i++) this[this.length] = arguments[i];
    return this.length;
}

function mq_ParamExists (varname) {
    var undef;
    return (varname !== undef);
}
function mq_display_locmap_info(container,loc) {
	if(!mq_ParamExists(loc))
        return;
	var htmlBlock = '<table border="0" cellspacing="0" cellpadding="0" width="100%" id="resultsTbl">';
	htmlBlock += '<tr class="a510"><td>Address</td><td>Store Hours</td><td>Store Details</td></tr>';
	htmlBlock += '<tr>';
	htmlBlock += '<td>';
		if (mq_ParamExists(loc.name) && loc.name.length) {
			htmlBlock += loc.name + '<br />';
		} else {
			loc.name = '';
		}
		if (mq_ParamExists(loc.address) && loc.address.length) {
			htmlBlock += loc.address + '<br />';
		}
		if (mq_ParamExists(loc.city) && loc.city.length) {
			htmlBlock += loc.city + ', ';
		}
		if (mq_ParamExists(loc.stateProvince) && loc.stateProvince.length) {
			htmlBlock += loc.stateProvince + ' ';
		}
		if (mq_ParamExists(loc.postalCode) && loc.postalCode.length) {
			htmlBlock += loc.postalCode + '<br />';
		} else if ((mq_ParamExists(loc.city) && loc.city.length) || (mq_ParamExists(loc.stateProvince) && loc.stateProvince.length)) {
			htmlBlock += '<br />';
		}
		
		
		if (mq_ParamExists(loc.userFields.user1) && loc.userFields.user1.length) {
			htmlBlock += loc.userFields.user1 + '<br />';
		}
		if (mq_ParamExists(loc.userFields.user2) && loc.userFields.user2.length) {
			htmlBlock += 'Fax: ' + loc.userFields.user2 + '<br />';
		}
		
		
//store number
		if (mq_ParamExists(loc.recordId) && loc.recordId.length) {


			htmlBlock +=  'Store Number: ' + loc.recordId + '<br />';
		}
	htmlBlock += '</td>';
	htmlBlock += '<td>';
		//added

		if (mq_ParamExists(loc.userFields.user3) && loc.userFields.user3.length) {
			//htmlBlock += 'Monday - Friday: ' + loc.userFields.user3 + '<br />';
			htmlBlock += loc.userFields.user3 + '<br />';
		}
		if (mq_ParamExists(loc.userFields.user4) && loc.userFields.user4.length) {
			//htmlBlock += 'Saturday: ' + loc.userFields.user4 + '<br />';
			htmlBlock += loc.userFields.user4 + '<br />';
		}
		if (mq_ParamExists(loc.userFields.user5) && loc.userFields.user5.length) {
			//htmlBlock += 'Sunday: ' + loc.userFields.user5 + '<br />';
			htmlBlock += loc.userFields.user5 + '<br />';
		}
		if (mq_ParamExists(loc.userFields.user6) && loc.userFields.user6.length) {
			htmlBlock += loc.userFields.user6 + '<br />';
			// Added in another field as Canada has up to 4 random weekly divisions
		}	
	
	htmlBlock += '</td>';
	htmlBlock += '<td>';
	htmlBlock += '<ul class="areaLinks">';
	if (mq_ParamExists(loc.recordId) && (parseInt(loc.recordId, 10) > 0) ) {
		//htmlBlock += '<li><a href="advantage.adp?transaction=route&destrecordId='+ loc.recordId + '" class="driveIcon">Driving Directions</a></li>';
		htmlBlock += '<li><a href="advantage.adp?tempset=route&transaction=route&destaddress=' + loc.address + '&destcity=' + loc.city + '&deststateProvince=' + loc.stateProvince + '&destrecordId='+ loc.recordId + '" class="driveIcon">Driving Directions</a></li>';
																			/* Removed -> &destname=' + loc.name + '  */
	}/*
	if (mq_ParamExists(loc.recordId) && (parseInt(loc.recordId, 10) > 0) ) {
		htmlBlock += '<li><a href="http://staples.shoplocal.com/staples/new_user_entry.aspx?SiteID=144&PretailerID=-99906&adref=staples_store_locator&StoreRef=' + parseInt(loc.recordId, 10) + '" class="specialIcon">In Store Specials</a></li>';
	}*/
	htmlBlock += '</ul>';
	htmlBlock += '</td>';
	htmlBlock += '</tr>';
	htmlBlock += '</table>';
	document.getElementById(container).innerHTML=htmlBlock;
}

//function used to display the outputting of a location in block format
function mq_display_address_part1(container, loc, strURL) {
    var bSpace=false;

    if(!mq_ParamExists(loc))
        return;

    var div = createDiv (container, '', '');
	
	if ((typeof loc.name == 'undefined') || (loc.name == 'undefined')) {
		loc.name = '';
	} 
      
     if (mq_ParamExists(loc.name) && loc.name.length) {
         div.appendChild (document.createTextNode (loc.name));
         div.appendChild (document.createElement ('br'));
     }
     if (mq_ParamExists(loc.address) && loc.address.length) {
         div.appendChild (document.createTextNode (loc.address));
         div.appendChild (document.createElement ('br'));
     }
     if (mq_ParamExists(loc.city) && loc.city.length)
         div.appendChild (document.createTextNode (loc.city + ', '));// must have space here to seperate city and state

     if (mq_ParamExists(loc.stateProvince) && loc.stateProvince.length) {
         div.appendChild (document.createTextNode (loc.stateProvince + ' '));// must have space here to seperate state and zip/postalCode
         
     }
     if (mq_ParamExists(loc.postalCode) && loc.postalCode.length) {
         //if (bSpace) {
         //    div.appendChild (document.createTextNode (' '));
         //}
         div.appendChild (document.createTextNode (loc.postalCode));
		 div.appendChild (document.createElement ('br'));
		 //bSpace=true;
     }
    /* if (mq_ParamExists(loc.country) && loc.country.length) {
         if(bSpace) {
             div.appendChild (document.createTextNode (' '));
         }
         div.appendChild (document.createTextNode (loc.country));
     }*/ 
	if ((loc.userFields != null) && mq_ParamExists(loc.userFields.user1) && loc.userFields.user1.length) {
         if(bSpace) {
             div.appendChild (document.createTextNode (' '));
         }
         div.appendChild (document.createTextNode (loc.userFields.user1));
     }
	
	

	 
}

//function used to display the outputting of a location in block format
function mq_display_address_part2(container, loc, strURL) {
    var bSpace=false;

    if(!mq_ParamExists(loc))
        return;

    var div = createDiv (container, '', '');
	
	  if(strURL != "") {
            var a = createA (div, strURL + '&iconId=30689001', '');
			createImg (a, '/images/ic016-driving.gif', '', '', '', '', '');
            var em = a.appendChild (document.createElement ('em'));
				
                em.appendChild (document.createTextNode ('Store Information'));
            
        } else {
           // var span = createSpan (div, '', '');
           //     var em = span.appendChild (document.createElement ('em'));
           //     em.appendChild (document.createTextNode (loc.name));
           // div.appendChild (document.createElement ('br'));
        }
	
	
	if (mq_ParamExists(loc.recordId) && (parseInt(loc.recordId, 10) > 0) ) {
		div.appendChild (document.createElement ('br'));
		var a = createA (div, '/advantage.adp?transaction=route&destrecordId='+ loc.recordId);
		var em = a.appendChild (document.createElement ('em'));
		em.appendChild (document.createTextNode ('Driving Directions'));
	}
	
	/*
	div.appendChild (document.createElement ('br'));
	if (mq_ParamExists(loc.recordId) && (parseInt(loc.recordId, 10) > 0) ) {
	var a = createA (div, 'http://staples.shoplocal.com/staples/new_user_entry.aspx?SiteID=144&PretailerID=-99906&adref=staples_store_locator&StoreRef='+ parseInt(loc.recordId, 10));
            var em = a.appendChild (document.createElement ('em'));
                em.appendChild (document.createTextNode ('In Store Specials'));
	}
	*/
	div.appendChild (document.createElement ('br'));
     
	 
}

//function used to display the outputting of a location in block format
function mq_display_address_part3(container, loc, strURL) {
    var bSpace=false;

    if(!mq_ParamExists(loc))
        return;

    var div = createDiv (container, '', '');
	

      
     if (mq_ParamExists(loc.name) && loc.name.length) {
         div.appendChild (document.createTextNode (loc.name));
         div.appendChild (document.createElement ('br'));
     }
     if (mq_ParamExists(loc.address) && loc.address.length) {
         div.appendChild (document.createTextNode (loc.address));
         div.appendChild (document.createElement ('br'));
     }
     if (mq_ParamExists(loc.city) && loc.city.length)
         div.appendChild (document.createTextNode (loc.city + ','));

     if (mq_ParamExists(loc.stateProvince) && loc.stateProvince.length) {
         div.appendChild (document.createTextNode (loc.stateProvince));
         bSpace=true;
     }
     if (mq_ParamExists(loc.postalCode) && loc.postalCode.length) {
         if (bSpace) {
             div.appendChild (document.createTextNode (' '));
         }
         div.appendChild (document.createTextNode (loc.postalCode));//not it
     }
     if (mq_ParamExists(loc.country) && loc.country.length) {
         if(bSpace) {
             div.appendChild (document.createTextNode (' '));
         }
         div.appendChild (document.createTextNode (loc.country));
     }
	
	//example of how to output location parameters from the userfields
     //if (mq_ParamExists(loc.userFields) && mq_ParamExists(loc.userFields.user1) && loc.userFields.user1.length) {
     //if (mq_ParamExists(loc.userFields) && mq_ParamExists(loc.userFields.user1) && loc.userFields.user1.length) {
         //div.appendChild (document.createElement ('br'));
         //div.appendChild (document.createTextNode (loc.userFields.user1));
     //}
	

	 
}

//function used to display the outputting of a location in block format
function mq_display_address_location(container, loc, strURL) {
    var bSpace=false;

    if(!mq_ParamExists(loc))
        return;

    var div = createDiv (container, '', '');
	
	/*
	
	var theAddress = '';
	if (mq_ParamExists(loc.address) && loc.address.length) {
         theAddress = loc.address + '<br />';
     }
	if (mq_ParamExists(loc.city) && loc.city.length)
         theAddress += loc.city + ',';

     if (mq_ParamExists(loc.stateProvince) && loc.stateProvince.length) {
         theAddress += loc.stateProvince;
         bSpace=true;
     }
     if (mq_ParamExists(loc.postalCode) && loc.postalCode.length) {
         if (bSpace) {
             theAddress += ' ';
         }
         theAddress += loc.postalCode;
     }
     if (mq_ParamExists(loc.country) && loc.country.length) {
         if(bSpace) {
             theAddress += ' ';
         }
         theAddress += loc.country;
     }
	theAddress += '<br />';
	if(strURL != "") {
		theAddress += '<a href="' + strURL + '">Store Information</a> ';
    }
	if (mq_ParamExists(loc.name) && loc.name.length) {
		theAddress += 'http://staples.shoplocal.com/staples/new_user_entry.aspx?SiteID=144&PretailerID=-99906&adref=staples_store_locator&StoreRef='+ parseInt(loc.name)'">In Store Specials</a>';
	}
	
	div.innerHTML = theAddress;
   */
      
     if (mq_ParamExists(loc.name) && loc.name.length) {
         div.appendChild (document.createTextNode (loc.name));
         div.appendChild (document.createElement ('br'));
     }
     if (mq_ParamExists(loc.address) && loc.address.length) {
         div.appendChild (document.createTextNode (loc.address));
         div.appendChild (document.createElement ('br'));
     }
     if (mq_ParamExists(loc.city) && loc.city.length)
         div.appendChild (document.createTextNode (loc.city + ','));

     if (mq_ParamExists(loc.stateProvince) && loc.stateProvince.length) {
         div.appendChild (document.createTextNode (loc.stateProvince));
         bSpace=true;
     }
     if (mq_ParamExists(loc.postalCode) && loc.postalCode.length) {
         if (bSpace) {
             div.appendChild (document.createTextNode (' '));
         }
         div.appendChild (document.createTextNode (loc.postalCode));
     }
     if (mq_ParamExists(loc.country) && loc.country.length) {
         if(bSpace) {
             div.appendChild (document.createTextNode (' '));
         }
         div.appendChild (document.createTextNode (loc.country));
     }
	div.appendChild (document.createElement ('br'));
	  if(strURL != "") {
            var a = createA (div, strURL + '&iconId=30689001', '');
            var em = a.appendChild (document.createElement ('em'));
                em.appendChild (document.createTextNode ('Store Information'));
            
        } else {
           // var span = createSpan (div, '', '');
           //     var em = span.appendChild (document.createElement ('em'));
           //     em.appendChild (document.createTextNode (loc.name));
           // div.appendChild (document.createElement ('br'));
        }
	
	
	if (mq_ParamExists(loc.recordId) && (parseInt(loc.recordId, 10) > 0) ) {
		var yo = div.appendChild (document.createElement ('span'));
		yo.appendChild (document.createTextNode (' | '));
		var a = createA (div, '/advantage.adp?transaction=route&destrecordId='+ loc.recordId);
		var em = a.appendChild (document.createElement ('em'));
		em.appendChild (document.createTextNode ('Driving Directions'));
	}
	
	/*
	var yo = div.appendChild (document.createElement ('span'));
	yo.appendChild (document.createTextNode (' | '));
	if (mq_ParamExists(loc.recordId) && (parseInt(loc.recordId, 10) > 0) ) {
	var a = createA (div, 'http://staples.shoplocal.com/staples/new_user_entry.aspx?SiteID=144&PretailerID=-99906&adref=staples_store_locator&StoreRef='+ parseInt(loc.recordId, 10));
            var em = a.appendChild (document.createElement ('em'));
                em.appendChild (document.createTextNode ('In Store Specials'));
	}
	*/
	div.appendChild (document.createElement ('br'));
     //example of how to output location parameters from the userfields
     //if (mq_ParamExists(loc.userFields) && mq_ParamExists(loc.userFields.user1) && loc.userFields.user1.length) {
     //if (mq_ParamExists(loc.userFields) && mq_ParamExists(loc.userFields.user1) && loc.userFields.user1.length) {
         //div.appendChild (document.createElement ('br'));
         //div.appendChild (document.createTextNode (loc.userFields.user1));
     //}
	 
}

//this function is used to display the address in the single line format
function mq_display_address_location_single_line(container, loc, image, width, height, label) {
    var bSpace=false;

    if (arguments.length < 6)
        label = '';

    if (!mq_ParamExists(loc))
        return;

    var div = createDiv (container, '', '');

    if (image != "")
        createImg (div, "/images/" + image, width, height, '', '', 'address icon');

    if (label != "")
        div.appendChild (document.createTextNode (label + ' '));

    if (mq_ParamExists(loc.address) && loc.address.length)
        div.appendChild (document.createTextNode (loc.address + " "));

    if (mq_ParamExists(loc.city) && loc.city.length)
        div.appendChild (document.createTextNode (loc.city + " "));

    if (mq_ParamExists(loc.stateProvince) && loc.stateProvince.length) {
        div.appendChild (document.createTextNode (loc.stateProvince));
        bSpace=true;
    }
    if (mq_ParamExists(loc.postalCode) && loc.postalCode.length) {
        if(bSpace)
        {
            div.appendChild (document.createTextNode (" "));
        }
        div.appendChild (document.createTextNode (loc.postalCode));
    }
    if (mq_ParamExists(loc.country) && loc.country.length) {
        if(bSpace) {
            div.appendChild (document.createTextNode (" "));
        }
        div.appendChild (document.createTextNode (loc.country));
    }
}

//function used to format a number (num) to x(dec) decimal places
function formatNumber(num,dec) {
   return Math.floor(num * Math.pow(10,dec))/Math.pow(10,dec);
}

//function displays the time in format x hours, x.xx minutes or x.xx minutes
function mq_display_time(totalTime) {
   var newTime;
   // more than a minute
   if(totalTime > 3600)
   {
      newTime = totalTime/3600;
      var result = (" " + Math.floor(newTime) + " hours,");
      newTime = (totalTime/60)%60;
      result += (" " + Math.floor(newTime) + " minutes");
      return result;
   }
   if(totalTime > 60)
   {
      newTime = totalTime/60;
      return (" " + Math.floor(newTime) + " minutes");
   }
}

//function used to display distance formated in a div with right alignment.
//outputs miles or kilometers with 2 digits of precision
function mq_display_distance(totalDistance) {
   return (" " + totalDistance.value + (totalDistance.units == "mi" ? " miles" : " kilometers"));
}

/*
 * functions to make non-dom compliant browsers behave
 */
function W3CDOM_Event(currentTarget) {
    this.currentTarget  = currentTarget;
    this.preventDefault = function() { window.event.returnValue = false }
    this.clientX = window.event.clientX;
    this.clientY = window.event.clientY;
    this.which = window.event.button;
    return this;
}

function add_listener (object, event, callback)
{
    if (object != null) {
        if (object.addEventListener) {  // w3c DOM
            object.addEventListener (event, callback, false);
        } else if (object.attachEvent) { // IE
            object.attachEvent ('on' + event, function () {callback (new W3CDOM_Event (object))});
        }
    }
}
//moved function newsubmit() from page level, to here.
function newsubmit() {
	if (document.getElementById('record').value.length > 0) {
		document.getElementById('transaction').value='locmap';
		/*if (document.getElementById('record').value.length < 4) {
			for(zeros=0; document.getElementById('record').value.length < 4; zeros++) {
				document.getElementById('record').value = '0' + document.getElementById('record').value;
			}
		}*/
	} else {
		document.getElementById('transaction').value='search';
	}
}
