var openMenu = null;
function showMenu(elID, event, act, thisObj, old)
{
if (document.getElementById('tabs'))
thisObj = thisObj.parentNode;  //<-- Sid
var menudiv = document.getElementById(elID);
if(!act)
{
//		menudiv.style.display = 'hidden';
}
else
{
if(openMenu)
{
var menuToClose = document.getElementById(openMenu);
menuToClose.style.display = 'none';
if(elID == openMenu)
{
openMenu = null;
return;
}
}
openMenu = elID;
if(!old) {
var additionalOffset = thisObj.offsetParent ? thisObj.offsetParent.offsetTop : 0;
//menudiv.style.top = (additionalOffset + thisObj.offsetParent.offsetTop + thisObj.offsetParent.offsetHeight)+"px";
menudiv.style.top = (thisObj.offsetParent.offsetTop + thisObj.offsetParent.offsetHeight)+"px";
//alert(thisObj.offsetTop);
//alert(thisObj.offsetParent.offsetHeight);
menudiv.style.top = (additionalOffset + thisObj.offsetTop + thisObj.offsetHeight)+"px";
} else {
//alert();
menudiv.style.top = (thisObj.offsetHeight + thisObj.offsetTop)+"px";
}
//		alert(thisObj.offsetTop+' '+thisObj.clientTop + ' ' + thisObj);
//		alert(thisObj.offsetParent.offsetLeft+' '+thisObj.offsetLeft + ' ' + thisObj);
if(!old) {
var additionalOffset = thisObj.offsetParent.offsetParent ? thisObj.offsetParent.offsetParent.offsetLeft : 0;
//menudiv.style.left = (additionalOffset + thisObj.offsetParent.offsetLeft)+"px";
menudiv.style.left = (additionalOffset + thisObj.offsetLeft)+"px";
} else {
menudiv.style.left = (thisObj.offsetLeft)+"px";
}
menudiv.style.zIndex = '100';
//if(menudiv.style.display != 'none') {
//menudiv.style.display = 'none';
//} else {
menudiv.style.display = 'block';
//}
//		var linkId = (elID+'_link');
//		var link = document.getElementById(linkId);
//		link.focus();
//window.alert(event.clientX+" : "+event.clientY);
}
}

function jSearchBarHover(thisEvent, thisObj) {
if(thisEvent == 'out') {
/*thisObj.className = ''; */
thisObj.style.backgroundColor = '';
thisObj.style.color = '';
} else {
thisObj.style.backgroundColor = '#B21D09';
thisObj.style.color = 'white';

/* thisObj.className = 'hover'; */
}
}

function hideMenu(elID)
{
var menudiv = document.getElementById(elID);
}

function hoverChangeText(thisObj, newText) {
thisObj.innerHTML = newText;
}
/**
* @author Jesse Jordan
* @since  2008
* @package Other javascript functions
*/
var dateTime = function(){
document.getElementById('changeDate').style.display='block';
document.getElementById('dateTime').style.display='none';
document.getElementById('changeOver').style.display='none';
};

var dateTimeClose = function(){
var changeDate = document.getElementById('changeDate');
var dateTime = document.getElementById('dateTime');
var changeOver = document.getElementById('changeOver');
changeOver.style.display='block';
changeDate.style.display='none';
dateTime.style.display='block';
};

var PickDateTimeForOrder = function() {
var PickDateTimeForOrderBox = document.getElementById('PickDateTimeForOrderBox');

PickDateTimeForOrderBox.style.display="block";
};

var PickDateTimeForOrderClose = function(){
var PickDateTimeForOrderBox = document.getElementById('PickDateTimeForOrderBox');

PickDateTimeForOrderBox.style.display="none";
};

var dsList = function(thisObj){
/*thisObj.parentNode.className = 'on';*/
thisObj.parentNode.className = 'highlight';
};

var dsListoff = function(thisObj) {
thisObj.parentNode.className = 'off';
};


//stolen from global.js
/*function jEntitiesShowSchedule(thisObj, ourId) {
jEntitiesHideSchedule();
var leftOffset = jGetWidth(thisObj);
var ourSched = document.getElementById(ourId);
ourSched.style.visibility = 'visible';
}

//stolen from global.js
function jEntitiesHideSchedule() {
var allDivs = document.getElementsByTagName('div');
for (var i = 0; i < allDivs.length; i++) {
var thisDiv = allDivs[i];
if (thisDiv.className == 'schedule_hours') {
thisDiv.style.visibility = 'hidden';
}
}
} */

function jlHoursShow(thisObj, ourId) {
jlHoursHide();
//	var leftOffset = jGetWidth(thisObj.offsetParent);
//	alert(leftOffset);
var ourSched = document.getElementById(ourId);
ourSched.style.visibility = 'visible';
//ourSched.style.left = leftOffset + 'px';
}

//stolen from global.js
function jlHoursHide() {
var allDivs = document.getElementsByTagName('div');
for (var i = 0; i < allDivs.length; i++) {
var thisDiv = allDivs[i];
if (thisDiv.className == 'schedule_hours') {
thisDiv.style.visibility = 'hidden';
}
}
}
function jAddressPop()
{
//alert('foo');     //Use firefox console.log() instead (BI)
var box = document.getElementById('j_address_box');
var pop = document.getElementById('j_address_pop');
var streetl = document.getElementById('j_address_street_label');
var zipl = document.getElementById('j_address_zip_label');
var addl = document.getElementById('j_address_label');
var streetAd = document.getElementById('j_address_street_input');
var zipAd = document.getElementById('j_address_zip_input');
var addressR = document.getElementById('readonly_address');
var popper = document.getElementById('j_address_pop_link');
if(popper && streetl.style.visibility == 'visible') {
if(pop) {
pop.style.display = '';
pop.style.left = '';
pop.style.top = '';
}
streetl.style.visibility = '';
zipl.style.visibility = '';
addressR.style.display = '';
streetAd.style.display = '';
zipAd.style.display = '';
zipl.style.left = '';
streetl.style.left = '';
zipl.style.top = '';
streetl.style.top = '';
popper.innerHTML = '&gt;&gt;';
} else if((!popper && streetl.style.visibility != 'visible') ^ (popper && streetl.style.visibility != 'visible')) {
if(popper) {
popper.innerHTML = '&lt;&lt;';
}
addressR.style.display = 'none';
streetAd.style.display = 'inline';
zipAd.style.display = 'inline';
streetl.style.visibility = 'visible';
streetl.style.top = "-"+(jGetHeight(streetl))+"px";
streetl.style.left = (jGetWidth(addl) + 5)+"px";
zipl.style.visibility = 'visible';
zipl.style.top = "-"+(jGetHeight(zipl))+"px";
zipl.style.left = (jGetWidth(addl) + jGetWidth(streetAd) + 10)+"px";
if(pop) {

pop.style.left = (box.offsetLeft + jGetWidth(addl) + 5)+"px";
//pop.style.top = (box.offsetParent.offsetTop + box.offsetTop + jGetHeight(box))+"px";
pop.style.top = (box.offsetTop + jGetHeight(box))+"px";
//pop.style.zIndex = '9999';
pop.style.width = (jGetWidth(streetAd) + jGetWidth(zipAd))+"px";
pop.style.display = 'block';
pop.style.display = 'none';
pop.style.display = 'block';
var selPos = document.getElementById('sel');
if(selPos) {
//				alert(selPos.offsetTop);
//				alert(pop.offsetTop);
pop.scrollTop = (selPos.offsetTop - pop.offsetTop);
}

//alert(jGetWidth(streetAd));
//alert(jGetWidth(zipAd));
}

//window.location = '#sel';
//window.location = '#';

/* label.style.top = "-"+(thisObj.offsetParent.offsetHeight - 5)+"px";
label.style.left = (thisObj.offsetParent.offsetParent.offsetParent.offsetLeft + 5)+"px"; */
}
}

function jGetWidth(obj) {
var opera = window.opera ? true : false;
if(!opera) {
return obj.offsetWidth;
} else {
return obj.clientWidth ? obj.clientWidth : obj.offsetWidth;
}
}

function jGetHeight(obj) {
var opera = window.opera ? true : false;
if(!opera) {
return obj.offsetHeight;
} else {
return obj.clientHeight ? obj.clientHeight : obj.offsetHeight;
}
}

function jAddressSelect(thisObj, loc_street, loc_zip, location_id, readonly_text) {
document.getElementById('DC_location_id').value = location_id;
document.getElementById('readonly_address').innerHTML = readonly_text+' ';
document.getElementById('j_address_street_input').value = loc_street;
document.getElementById('j_address_zip_input').value = loc_zip;
var sel = document.getElementById('sel');
if(sel) {
if(sel.className == '1') {
sel.id = '';
} else {
sel.id = 'alt';
}
}

thisObj.id = 'sel';

jAddressPop();
}

function jAddressHover(thisEvent, thisObj) {
if(thisEvent == 'out') {
/*thisObj.className = ''; */
thisObj.style.backgroundColor = '';
thisObj.style.color = '';
} else {
thisObj.style.backgroundColor = '#B21D09';
thisObj.style.color = 'white';

/* thisObj.className = 'hover'; */
}
}

function changeQtySuffix(thisObj, name_reg, name_plural)
{
if(thisObj.value == 1)
document.getElementById('qty_suffix').innerHTML = name_reg;
else document.getElementById('qty_suffix').innerHTML = name_plural;
}

function showMoreRatings()
{
document.getElementById('extended_ratings').style.display='block';
return false;
}

function showMoreCuisines()
{
document.getElementById('moreCuisines').style.display='none';
var allspans = document.getElementsByTagName('span');
for (var i = 0; i < allspans.length; i++) {
var thisspan = allspans[i];
if (thisspan.className == 'j_cuisine_more') {
thisspan.className = 'j_cuisine_off';
}
}
}

function showHideMoreCuisines(id)
{
if (id == 'moreCuisines') {
document.getElementById('moreCuisines').style.display='none';
document.getElementById('lessCuisines').style.display='';
var allspans = document.getElementsByTagName('span');
for (var i = 0; i < allspans.length; i++) {
var thisspan = allspans[i];
if (thisspan.className == 'j_cuisine_more') {
thisspan.className = 'j_cuisine_off';
}
}
} else if (id == 'lessCuisines') {
document.getElementById('lessCuisines').style.display='none';
document.getElementById('moreCuisines').style.display='';
var allspans = document.getElementsByTagName('span');
for (var i = 6; i < allspans.length; i++) {
var thisspan = allspans[i];
if (thisspan.id != "popular") {
if (thisspan.className == 'j_cuisine_off') {
thisspan.className = 'j_cuisine_more';
}
}
}
}
}

var openLocation = null;
function changeLocationFields(thisObj) {
var peekbox;
document.getElementById('peek_box_hack').style.display = 'none'; //hack
document.getElementById('location_entry').style.display = 'none';

if(openLocation != null) {
peekbox = 'peek_box_'+openLocation;
document.getElementById(peekbox).style.display = 'none';
}

if(thisObj.value == 0) {
fillAndDisplayLocationEntry('','','','','','','');
} else {
openLocation = thisObj.value;
peekbox = 'peek_box_'+openLocation;
//alert(peekbox);
document.getElementById(peekbox).style.display = 'block';
}
}

function fillAndDisplayLocationEntry(full_name, street, zip, cross_streets, unit_number, company, phone) {
var peekbox;
document.getElementById('location_entry').style.display = 'block';
document.getElementById('peek_box_hack').style.display = 'none'; //hack
if(openLocation != null) {
peekbox = 'peek_box_'+openLocation;
document.getElementById(peekbox).style.display = 'none'; //hack
}

document.getElementById('op_company').value = company;
document.getElementById('op_street').value = street;
document.getElementById('op_zip').value = zip;
document.getElementById('op_cross_streets').value = cross_streets;
document.getElementById('op_unit_number').value = unit_number;
document.getElementById('op_phone').value = phone;
document.getElementById('op_full_name').value = full_name;
}

function showError()
{
if(windows.readyState == 'complete') {      //FIXME where is 'windows' defined?
tb_show(null,'#TB_inline?height=300&width=621&inlineId=page_error', false);      //FIXME where is tb_show defined?
}
}

function showDebugBoxes()
{
if(document.getElementById('tab_box') != null)
document.getElementById('tab_box').style.display='block';
if(document.getElementById('param_box') != null)
document.getElementById('param_box').style.display='inline';
if(document.getElementById('sql_box') != null)
document.getElementById('sql_box').style.display='inline';
if(document.getElementById('var_box') != null)
document.getElementById('var_box').style.display='inline';
}

function changeItemTotal(thisObj, price)
{
var total = 0;
//Base price
if (price = document.getElementById('add_item').ipgid) {
var priceArray = document.getElementById('price_extra').value.split("|");
for (var i=0;i<price.length;i++) {
if (price[i].checked == true) {
total = parseFloat(priceArray[i]);
}
}
} else {
total = parseFloat(document.getElementById('price').value);
}

//Options
var optGroups = document.getElementById('optGroups').value;
for (var m=1; m<=optGroups; m++)
{
var optCount = document.getElementById('optCount'+m).value;
for (var n=0;n<optCount;n++)
{
var opt = document.getElementById(m + 'opt' + n);
if (opt.type == 'select-one')
{
var extra = opt.options[opt.selectedIndex].value;
var re = /^\$|,/g; // remove "$" and ","
extra = extra.replace(re, "");
total = total + parseFloat(extra);
//total = total + parseInt(opt.options[opt.selectedIndex].value.replace("/^\$|,/g", ""));
}
else if (opt.type == 'radio' || opt.type == 'checkbox')
{
var optArray = document.getElementById('optArray' + m).value.split("|");
if (opt.checked)
{
total = total + parseFloat(optArray[n]);
}
}
else if (opt.type == 'text')
{
//FIXME: do we need behavior for these?
}
}
}

//Quantity
var qty = document.getElementById('qty');
if (qty.type == 'select-one') {
var quantity = qty[qty.selectedIndex].value;
total = total * quantity;
for (m=1; m<=optGroups; m++)
{
if(document.getElementById('iogmin'+m))
{
document.getElementById(m+'min').innerHTML = parseInt(document.getElementById('iogmin'+m).value) * quantity;
document.getElementById(m+'max').innerHTML = parseInt(document.getElementById('iogmax'+m).value) * quantity;
}
}
}

document.getElementById('priceTop').innerHTML = '$' + total.toFixed(2);
document.getElementById('priceBot').innerHTML = '$' + total.toFixed(2);
}

function toggleOptions(divId) {
var div = document.getElementById(divId);
if(div.style.display == 'none') {
div.style.display = 'block';
} else {
div.style.display = 'none';
}
}

function optionSubmit()
{
var errorMsg = "";
for (var m=1; m<=document.getElementById("optGroups").value; m++)
{
if (document.getElementById(m+"sel"))
{
if (parseInt(document.getElementById(m+"sel").innerHTML) < parseInt(document.getElementById(m+"min").innerHTML))
errorMsg = "You haven't chosen enough items.\nYou currently have "+document.getElementById(m+"sel").innerHTML+" items.\nYou need at least "+document.getElementById(m+"min").innerHTML+" items.\n\n";
if (parseInt(document.getElementById(m+"sel").innerHTML) > parseInt(document.getElementById(m+"max").innerHTML))
errorMsg = "You've chosen too many items.\nYou currently have "+document.getElementById(m+"sel").innerHTML+" items.\nYou can have at most "+document.getElementById(m+"max").innerHTML+" items.\n\n";
if (parseInt(document.getElementById("iogchoice"+m).value) > 0)
{
if (parseInt(document.getElementById(m+"cat").innerHTML) > parseInt(document.getElementById(m+"cats").innerHTML))
errorMsg += "You've chosen too many types of items.\nYou've currently selected "+document.getElementById(m+"cat").innerHTML+" different types of items.\nYou can only select up to "+document.getElementById(m+"cats").innerHTML+" types of items.\n\n";
}
if (errorMsg != "")
{
alert(errorMsg);
return false;
}
}
}
return true;
}

function checkOptQty(group) {
var chosen=0, total=0;
for (var i=0; i<document.getElementById("optCount" + group).value; i++)
{
if (document.getElementById(group+"opt"+i).value < 0 || isNaN(document.getElementById(group+"opt"+i).value))
document.getElementById(group+"opt"+i).value = "";
if (document.getElementById(group+"opt"+i).value != 0)
{
chosen++;
total += parseInt(document.getElementById(group+"opt"+i).value);
}
}
document.getElementById(group+"sel").innerHTML = total;
document.getElementById(group+"cat").innerHTML = chosen;
}

function clearInput(obj) {
if (obj.value == '0') obj.value = '';
else if (obj.value == '') obj.value = 0;
}

function showPrice(radio) {
if (radio == "single") {
document.getElementById("price_single").style.display='';
document.getElementById("price_group").style.display='none';
} else if (radio == "group") {
document.getElementById("price_single").style.display='none';
document.getElementById("price_group").style.display='';
}
}

function addPG() {
var priceCount = parseInt(document.getElementById('priceCount').value);

if (priceCount < 8) {
priceCount = priceCount + 1;
document.getElementById('priceCount').value = priceCount;
var newdiv = document.createElement('div');
newdiv.style.cssText = "padding-top:5px;";
newdiv.innerHTML = 'Price Name: <input type="text" name="prices_name[' + priceCount + ']" size="12">' +
' Price: $<input name="prices[' + priceCount + ']" type=text size=8>' +
' (<a onclick="removePrice(this);">remove</a>)' +
'<input type="hidden" name="ipgid[]" value="' + priceCount + '">';
document.getElementById("price_group").appendChild(newdiv);
} else {
alert("You can only set up to 8 price groups.\nTo enter more, please note them in the info box below.");
}
}

function removePrice(div) {
var div_count = document.getElementById("price_group").getElementsByTagName("DIV");
if (div_count.length > 2) {
var answer = confirm("Are you sure you want to remove this price group?");  //FIXME where is confirm defined?
if (answer == true) {
div.parentNode.parentNode.removeChild(div.parentNode);
document.getElementById('priceCount').value -= 1;
}
} else {
alert("You must have at least two price groups.");
}
}

function deleteOptGrp(iopid) {
if (confirm("Are you sure you want to remove this option group from this item?")) {  //FIXME where is confirm defined?
document.getElementById('opt_group_iopid').value = iopid;
document.getElementById('frmDelOptions').submit();
}
}

function qtyDisplay(type) {
if (type == "Q") {
document.getElementById('qty_display').style.display = '';
} else {
document.getElementById('qty_display').style.display = 'none';
}
}

function showDate(date, options, num) {
for(var i = 0; i < options.length; i++)
{
if(options[i].value)
{
document.getElementById('orderTimeTime_'+num+'_'+options[i].value).style.display = 'none';
}
}
var val = document.getElementById('orderTimeTime_'+num+'_'+date);
//val = document.getElementsByName('orderTimeTime_'+num+'_'+date);
if(val)
{
val.style.display='block';
}
}

function showViewByMerchantBox(merch, options) {
for(var i = 0; i < options.length; i++)
{
if(options[i].value)
{
document.getElementById('merchant_'+options[i].value).style.display = 'none';
}
}
var val = document.getElementsByName('merchant_'+merch);
if(val[0])
{
val[0].style.display='block';
}
}

function addHoursRange() {
var day = document.getElementById('dayAddHours').selectedIndex; //selected day of week
var ranges = document.getElementById('ranges' + day); //div corresponding to ranges for day of week
var rangeCount = document.getElementById("rangeCount" + day).value;  //count # of visible ranges
var newCount = 0; //number of ranges, this will be the new hour range count
newCount = ranges.getElementsByTagName("select").length; //count # of select boxes in the day
newCount = newCount / 2; //gives number of ranges in the day


//if day is "closed", remove the "closed" div from the ranges div
if (rangeCount == 0) {
var closeDiv = document.getElementById('closed_' + day);
ranges.removeChild(closeDiv);
}

//this is the "blank" hour range div that is hidden on the page
var div = document.getElementById('menu_hours_blank');
//a new div is made as a clone of the blank
var newDiv = div.cloneNode(true);

//loop over all of the hour select boxes in the new div
var selects = newDiv.getElementsByTagName("select");
var i;
for (i=0;i<selects.length;i++) {
//for each select box, change the name to reflect the new count
selects[i].name = selects[i].name.replace("[][]","[" + day + "][" + newCount + "]");
}

//set new range to visible
newDiv.style.display='';
//set new range's id to the day and count
newDiv.id = 'range' + day + newCount;

//can't access this via id, so i went by tag name
var spans = newDiv.getElementsByTagName("span");
for(i=0;i<spans.length;i++) {
//this is the span we're looking for - the "delete range" button
if (spans[i].id == "removeRange") {
//set the remove range button's javascript so it has the proper parameters in its onclick
//based on the location of the copy we've just made (funky syntax is for IE's sake)
spans[i].onclick = new Function("removeHoursRange(" + day + "," + newCount + ");");
}
}

//Insert the new hours range
ranges.appendChild(newDiv);

//Add the "clear" div to the bottom of the new hours range to separate it from the others
var addClear = document.createElement('div');
addClear.setAttribute('id', 'clear' + day + newCount);
addClear.setAttribute('class', 'clear');
addClear.setAttribute('className', 'clear');
ranges.appendChild(addClear);

//Increment range count (explicitly cast as integer or it takes it as string)
document.getElementById("rangeCount" + day).value = parseInt(rangeCount) + 1;
}

function removeHoursRange(day, count) {
//confirm that the user wants to delete this hour range
if (confirm("Are you sure you want to delete this hour range?")) {  //FIXME where is confirm defined?
var ranges = document.getElementById('ranges' + day);  //the hour ranges div for the day we are deleting from
var deleteDiv = document.getElementById('range' + day + count); //the hour range we are deleting
var deleteClear = document.getElementById('clear' + day + count); //the "clear" div for the range we are deleting
var rangeCount = document.getElementById("rangeCount" + day).value; //count number of visible ranges

//if we only have one range for this day
if (rangeCount == 1) {
//create a new "closed" div to replace the one we are deleting
var newDiv = document.createElement('div');  //creates new div
newDiv.setAttribute('id','closed_' + day); //sets it's id to closed_#
newDiv.setAttribute('style', "float:left;width:75%;font-weight:bold;text-align:center;"); //set style attribute
newDiv.style.cssText = "float:left;width:75%;font-weight:bold;text-align:center;"; //set style attribute (ie fix/hack)
newDiv.innerHTML = "Closed"; //div contains text "Closed"
ranges.appendChild(newDiv);  //attach new div to the day div
}

//hide the hour range div we are deleting
deleteDiv.style.display = 'none';
//loop over selects for the range we're deleting
var selects = deleteDiv.getElementsByTagName("select");
for (var i=0;i<selects.length;i++) {
//set selected indexes to 0 so they are skipped when submitted
selects[i].selectedIndex = 0;
}

//hide the "clear" div for the range we are deleting
deleteClear.style.display = 'none';

//Decrement range count
document.getElementById("rangeCount" + day).value -= 1;
}
}

//menu entry - confirm deleting element (item, sub-menu, menu)
function deleteElement(frmName) {
if (confirm("Are you sure you want to delete this item?")) {    //FIXME where is confirm defined?
document.getElementById('delete_element').value="1";
document.getElementById(frmName).submit();
}
}

//show or hides Tip Amount box on cart
function showTip(type) {
if (document.getElementById('tip_entry')) {
if (type == 'cc') {
document.getElementById('tip_entry').style.display = '';
} else if (type == 'cash') {
document.getElementById('tip_entry').style.display = 'none';
}
}
}

//calculate tip based on order total
function calcTip(percent) {
var subtotal = document.getElementById('tipSubtotal').value;
var tipAmount = subtotal * percent;
document.getElementById('tipinput').value = tipAmount.toFixed(2);
calcTipTotal();
}

//change total when a tip is calculated/entered
function calcTipTotal() {
if (document.getElementById('tipinput'))
{
var tip = parseFloat(document.getElementById('tipinput').value);
if (isNaN(tip))
tip = 0;
var total = parseFloat(document.getElementById('tipTotal').value);
var newTotal = total + tip;
document.getElementById('order_total').innerHTML = newTotal.toFixed(2);
if (document.getElementById('temp_total'))
document.getElementById('temp_total').innerHTML = newTotal.toFixed(2);
if (document.getElementById('temp_cc_total'))
document.getElementById('temp_cc_total').innerHTML = (newTotal*1 - 1*document.getElementById('so_far').value).toFixed(2);
if (document.getElementById('order_tips'))
document.getElementById('order_tips').innerHTML = "$"+tip.toFixed(2);
}
}

//display edit delivery information form
function editDeliveryInfo() {
document.getElementById('address_state').value = "edit";
document.getElementById('op_phone1').disabled = true;
document.getElementById('storedLocation').style.display = 'none';
document.getElementById('editLocation').style.display = '';
document.getElementById('op_phone2').disabled = false;
}

//display add new address form (displays/blanks out edit form)
function addDeliveryInfo() {
document.getElementById('address_state').value = "edit";
document.getElementById('op_phone1').disabled = true;
document.getElementById('storedLocation').style.display = 'none';
document.getElementById('location_id').value = '';
var editFrm = document.getElementById('editLocation');
var inputs = editFrm.getElementsByTagName("input");
for (var i=0;i<inputs.length;i++) {
inputs[i].value = '';
}
editFrm.style.display = '';
document.getElementById('op_phone2').disabled = false;
}

//My Account - Addresses - Display add address form
function addAddress(mode) {
var addrForm = document.getElementById('account_box_tan');
if (mode == 'edit') {
var inputs = addrForm.getElementsByTagName("input");
for (var i=0;i<inputs.length;i++) {
if (inputs[i].name != 'page_nav' && inputs[i].name != 'update_addr') {
inputs[i].value = '';
}
}
}
addrForm.style.display = '';
}

function showHideVendorSelect() {
var vendor_select = document.getElementById('vendor_selections');
if (vendor_select.style.display=='none') {
vendor_select.style.display='block';
} else if (vendor_select.style.display=='block') {
vendor_select.style.display='none';
}
if ( typeof retrieve_current_query ==='function' )  //FIXME where is retrieve_current_query defined?
retrieve_current_query('c_q');
}

function jmenuOpen(catalog_id) {
var menu = document.getElementById('catalog_' + catalog_id);
if(menu.className == 'menu_sticky') {
return;
} else if(menu.className == 'menu_off') {
menu.className = 'menu_on';
//document.getElementById('rank_arrow_up_' + catalog_id).style.color = '#FFFFFF';
//document.getElementById('rank_arrow_down_' + catalog_id).style.color = '#FFFFFF';
} else if(menu.className == 'menu_on') {
menu.className = 'menu_off';
//document.getElementById('rank_arrow_up_' + catalog_id).style.color = '#000000';
//document.getElementById('rank_arrow_down_' + catalog_id).style.color = '#000000';
} else if(menu.className == 'menu_off faded') {
menu.className = 'menu_on faded';
//document.getElementById('rank_arrow_up_' + catalog_id).style.color = '#FFFFFF';
//document.getElementById('rank_arrow_down_' + catalog_id).style.color = '#FFFFFF';
} else if(menu.className == 'menu_on faded') {
menu.className = 'menu_off faded';
//document.getElementById('rank_arrow_up_' + catalog_id).style.color = '#000000';
//document.getElementById('rank_arrow_down_' + catalog_id).style.color = '#000000';
}
}

function showSpecialFields() {
var type = document.getElementById('type').value;
var default_text = document.getElementById('default_text');
var percent_off_text = document.getElementById('percent_off_text');
var percent_off_percent = document.getElementById('percent_off_percent');
var dollar_off = document.getElementById('dollar_off');
var free_item = document.getElementById('free_item');
var over_amount = document.getElementById('over_amount');
var category = document.getElementById('category');
var text1 = document.getElementById('text1');
var text2 = document.getElementById('text2');

if (type == 0) {
//none selected
default_text.style.display = '';
percent_off_text.style.display = 'none';
percent_off_percent.style.display = 'none';
dollar_off.style.display = 'none';
free_item.style.display = 'none';
over_amount.style.display = 'none';
category.style.display = 'none';
text1.style.display = 'none';
text2.style.display = 'none';
} else if (type == 1) {
//% off all items
default_text.style.display = 'none';
percent_off_text.style.display = '';
percent_off_percent.style.display = 'none';
dollar_off.style.display = 'none';
free_item.style.display = 'none';
over_amount.style.display = 'none';
category.style.display = 'none';
text1.style.display = '';
text1.innerHTML = 'off all items';
text2.style.display = 'none';
} else if (type == 2) {
//% off all orders over amount
default_text.style.display = 'none';
percent_off_text.style.display = '';
percent_off_percent.style.display = 'none';
dollar_off.style.display = 'none';
free_item.style.display = 'none';
over_amount.style.display = '';
category.style.display = 'none';
text1.style.display = '';
text1.innerHTML = 'off Total Cost for orders over';
text2.style.display = 'none';
} else if (type == 3) {
//$ off all orders over amount
default_text.style.display = 'none';
percent_off_text.style.display = 'none';
percent_off_percent.style.display = 'none';
dollar_off.style.display = '';
free_item.style.display = 'none';
over_amount.style.display = '';
category.style.display = 'none';
text1.style.display = '';
text1.innerHTML = 'off Total Cost for orders over';
text2.style.display = 'none';
} else if (type == 4) {
//free item over amount
default_text.style.display = 'none';
percent_off_text.style.display = 'none';
percent_off_percent.style.display = 'none';
dollar_off.style.display = 'none';
free_item.style.display = '';
over_amount.style.display = '';
category.style.display = 'none';
text1.style.display = '';
text1.innerHTML = 'for every order over';
text2.style.display = 'none';
} else if (type == 5) {
//% off items in category
default_text.style.display = 'none';
percent_off_text.style.display = '';
percent_off_percent.style.display = 'none';
dollar_off.style.display = 'none';
free_item.style.display = 'none';
over_amount.style.display = 'none';
category.style.display = '';
text1.style.display = '';
text1.innerHTML = 'off all items in';
text2.style.display = 'none';
} else if (type == 6) {
//$ off items in category
default_text.style.display = 'none';
percent_off_text.style.display = 'none';
percent_off_percent.style.display = 'none';
dollar_off.style.display = '';
free_item.style.display = 'none';
over_amount.style.display = 'none';
category.style.display = '';
text1.style.display = 'off all items in category';
text2.style.display = 'none';
} else if (type == 7) {
//$ off first time users
default_text.style.display = 'none';
percent_off_text.style.display = 'none';
percent_off_percent.style.display = '';
dollar_off.style.display = 'none';
free_item.style.display = 'none';
over_amount.style.display = 'none';
category.style.display = 'none';
text1.style.display = 'none';
text2.style.display = '';
text2.innerHTML = 'off for 1st time users';
}
}

function chooseType()
{
if (document.getElementById('op_unit_type').selectedIndex == 1) {
document.getElementById('op_unit_number').disabled = true;
} else {
document.getElementById('op_unit_number').disabled = false;
}
}

function expandShopBy() {
document.getElementById('j_shop_fold_bar').style.display = 'none';
document.getElementById('j_shop_fold').className = 'j_shop_fold_open';
}

function checkAddressInput()
{
var address = document.getElementById('j_address_street_input').value;
var zip = document.getElementById('j_address_zip_input').value;

if (address == 'Street Address' || zip == 'Zip') {
//alert('Please input your address and zip code.');
return false;
} else {
return true;
}
}

function resortResults()
{
window.location = document.getElementById('sortme').value;
}
/*
* jQuery JavaScript Library v1.3.2
* http://jquery.com/
* @see class.display.php printFooter()
*
* Copyright (c) 2009 John Resig
* Dual licensed under the MIT and GPL licenses.
* http://docs.jquery.com/License
*
* Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
* Revision: 6246
*/
(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
/*
* Sizzle CSS Selector Engine - v0.9.3
*  Copyright 2009, The Dojo Foundation
*  Released under the MIT, BSD, and GPL Licenses.
*  More information: http://sizzlejs.com/
*/
(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
/**
* Global Delivery.com callback functions
*/

$(document).ready(function(){
if(document.getElementById('page_error')) {
tb_show(null,'#TB_inline?height=300&width=621&inlineId=page_error', false);
}
});
/*
* Thickbox 3.1 - One Box To Rule Them All.
* By Cody Lindley (http://www.codylindley.com)
* Copyright (c) 2007 cody lindley
* Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
*/

var tb_pathToImage = "/images/loadingAnimation.gif";

/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/

//on page load call tb_init
$(document).ready(function(){
tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
imgLoader = new Image();// preload image
imgLoader.src = tb_pathToImage;
});

//add thickbox to href & area elements that have a class of .thickbox
function tb_init(domChunk){
//alert(domChunk);
$(domChunk).click(function(){
var t = this.title || this.name || null;
var a = this.href || this.alt;
var g = this.rel || false;
tb_show(t,a,g);
this.blur();
return false;
});
}

function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link

try {
if(typeof imgLoader === "undefined") { //jesse's hack
tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
imgLoader = new Image();// preload image
imgLoader.src = tb_pathToImage;
}
if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
$("body","html").css({height: "100%", width: "100%"});
$("html").css("overflow","hidden");
if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
$("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
$("#TB_overlay").click(tb_remove);
}
}else{//all others
if(document.getElementById("TB_overlay") === null){
$("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
$("#TB_overlay").click(tb_remove);
}
}

if(tb_detectMacXFF()){
$("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash
}else{
$("#TB_overlay").addClass("TB_overlayBG");//use background and opacity
}

if(caption===null){caption="";}
$("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' /></div>");//add loader to the page
$('#TB_load').show();//show loader

var baseURL;
if(url.indexOf("?")!==-1){ //ff there is a query string involved
baseURL = url.substr(0, url.indexOf("?"));
}else{
baseURL = url;
}

var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/;
var urlType = baseURL.toLowerCase().match(urlString);

if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images

TB_PrevCaption = "";
TB_PrevURL = "";
TB_PrevHTML = "";
TB_NextCaption = "";
TB_NextURL = "";
TB_NextHTML = "";
TB_imageCount = "";
TB_FoundURL = false;
if(imageGroup){
TB_TempArray = $("a[@rel="+imageGroup+"]").get();
for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) {
var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);
if (!(TB_TempArray[TB_Counter].href == url)) {
if (TB_FoundURL) {
TB_NextCaption = TB_TempArray[TB_Counter].title;
TB_NextURL = TB_TempArray[TB_Counter].href;
TB_NextHTML = "<span id='TB_next'>&nbsp;&nbsp;<a href='#'>Next &gt;</a></span>";
} else {
TB_PrevCaption = TB_TempArray[TB_Counter].title;
TB_PrevURL = TB_TempArray[TB_Counter].href;
TB_PrevHTML = "<span id='TB_prev'>&nbsp;&nbsp;<a href='#'>&lt; Prev</a></span>";
}
} else {
TB_FoundURL = true;
TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length);
}
}
}

imgPreloader = new Image();
imgPreloader.onload = function(){
imgPreloader.onload = null;

// Resizing large images - orginal by Christian Montoya edited by me.
var pagesize = tb_getPageSize();
var x = pagesize[0] - 150;
var y = pagesize[1] - 150;
var imageWidth = imgPreloader.width;
var imageHeight = imgPreloader.height;
if (imageWidth > x) {
imageHeight = imageHeight * (x / imageWidth);
imageWidth = x;
if (imageHeight > y) {
imageWidth = imageWidth * (y / imageHeight);
imageHeight = y;
}
} else if (imageHeight > y) {
imageWidth = imageWidth * (y / imageHeight);
imageHeight = y;
if (imageWidth > x) {
imageHeight = imageHeight * (x / imageWidth);
imageWidth = x;
}
}
// End Resizing

TB_WIDTH = imageWidth + 30;
TB_HEIGHT = imageHeight + 60;
$("#TB_window").append("<a href='' id='TB_ImageOff' title='Close'><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></a>" + "<div id='TB_caption'>"+caption+"<div id='TB_secondLine'>" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div>");

$("#TB_closeWindowButton").click(tb_remove);

if (!(TB_PrevHTML === "")) {
function goPrev(){
if($(document).unbind("click",goPrev)){$(document).unbind("click",goPrev);}
$("#TB_window").remove();
$("body").append("<div id='TB_window'></div>");
tb_show(TB_PrevCaption, TB_PrevURL, imageGroup);
return false;
}
$("#TB_prev").click(goPrev);
}

if (!(TB_NextHTML === "")) {
function goNext(){
$("#TB_window").remove();
$("body").append("<div id='TB_window'></div>");
tb_show(TB_NextCaption, TB_NextURL, imageGroup);
return false;
}
$("#TB_next").click(goNext);

}

document.onkeydown = function(e){
if (e == null) { // ie
keycode = event.keyCode;
} else { // mozilla
keycode = e.which;
}
if(keycode == 27){ // close
tb_remove();
} else if(keycode == 190){ // display previous image
if(!(TB_NextHTML == "")){
document.onkeydown = "";
goNext();
}
} else if(keycode == 188){ // display next image
if(!(TB_PrevHTML == "")){
document.onkeydown = "";
goPrev();
}
}
};

tb_position();
$("#TB_load").remove();
$("#TB_ImageOff").click(tb_remove);
$("#TB_window").css({display:"block"}); //for safari using css instead of show
};

imgPreloader.src = url;
}else{//code to show html

var queryString = url.replace(/^[^\?]+\??/,'');
var params = tb_parseQuery( queryString );

TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL
TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL
ajaxContentW = TB_WIDTH - 30;
ajaxContentH = TB_HEIGHT - 45;

if(url.indexOf('TB_iframe') != -1){// either iframe or ajax window
urlNoQuery = url.split('TB_');
$("#TB_iframeContent").remove();
if(params['modal'] != "true"){//iframe no modal
$("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div></div><iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;' > </iframe>");
}else{//iframe modal
$("#TB_overlay").unbind();
$("#TB_window").append("<iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;'> </iframe>");
}
}else{// not an iframe, ajax
if($("#TB_window").css("display") != "block"){
if(params['modal'] != "true"){//ajax no modal
$("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a> or Esc Key</div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");
}else{//ajax modal
$("#TB_overlay").unbind();
$("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");
}
}else{//this means the window is already up, we are just loading new content via ajax
$("#TB_ajaxContent")[0].style.width = ajaxContentW +"px";
$("#TB_ajaxContent")[0].style.height = ajaxContentH +"px";
$("#TB_ajaxContent")[0].scrollTop = 0;
$("#TB_ajaxWindowTitle").html(caption);
}
}

$("#TB_closeWindowButton").click(tb_remove);

if(url.indexOf('TB_inline') != -1){
$("#TB_ajaxContent").append($('#' + params['inlineId']).children());
$("#TB_window").unload(function () {
$('#' + params['inlineId']).append( $("#TB_ajaxContent").children() ); // move elements back when you're finished
});
tb_position();
$("#TB_load").remove();
$("#TB_window").css({display:"block"});
}else if(url.indexOf('TB_iframe') != -1){
tb_position();
if($.browser.safari){//safari needs help because it will not fire iframe onload
$("#TB_load").remove();
$("#TB_window").css({display:"block"});
}
}else{
$("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method
tb_position();
$("#TB_load").remove();
tb_init("#TB_ajaxContent a.thickbox");
$("#TB_window").css({display:"block"});
});
}

}

if(!params['modal']){
document.onkeyup = function(e){
if (e == null) { // ie
keycode = event.keyCode;
} else { // mozilla
keycode = e.which;
}
if(keycode == 27){ // close
tb_remove();
}
};
}

} catch(e) {
//nothing here

}
}

//helper functions below
function tb_showIframe(){
$("#TB_load").remove();
$("#TB_window").css({display:"block"});
}

function tb_remove() {
$("#TB_imageOff").unbind("click");
$("#TB_closeWindowButton").unbind("click");
$("#TB_window").fadeOut("fast",function(){$('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();});
$("#TB_load").remove();
if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
$("body","html").css({height: "auto", width: "auto"});
$("html").css("overflow","");
}
document.onkeydown = "";
document.onkeyup = "";
return false;
}

function tb_position() {
$("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'});
if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6
$("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
}
}

function tb_parseQuery ( query ) {
var Params = {};
if ( ! query ) {return Params;}// return empty object
var Pairs = query.split(/[;&]/);
for ( var i = 0; i < Pairs.length; i++ ) {
var KeyVal = Pairs[i].split('=');
if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
var key = unescape( KeyVal[0] );
var val = unescape( KeyVal[1] );
val = val.replace(/\+/g, ' ');
Params[key] = val;
}
return Params;
}

function tb_getPageSize(){
var de = document.documentElement;
var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
arrayPageSize = [w,h];
return arrayPageSize;
}

function tb_detectMacXFF() {
var userAgent = navigator.userAgent.toLowerCase();
if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
return true;
}
}


/**
* author: Vladimir Kornea
* copyright: Delivery Concepts LLC
* name: utilities.js
* version: 1.0
* abstract: Various general-purpose javascript utility functions
*/

/*
function registerEventHandler(element, eventName, handler);
Registers the function 'handler' to run when the event 'eventName' occurs on the element 'element'.
Note:
1) handler and element are objects while eventName is a string:
registerEventHandler(window, 'load', initializeReportTables);
registerEventHandler(window, 'scroll', scrollTable);
2) objects created in the HTML <body>, such as form inputs, do not exist when registerEventHandler()
is called (from the <head>). To register events on such objects, do something like this:

registerEventHandler(window, 'load', registerEventHandlers);
function registerEventHandlers() {
registerEventHandler(document.my_form_name_1.my_input_name_1, 'change', myFormSubmit);
registerEventHandler(document.my_form_name_1.my_input_name_2, 'change', myFormSubmit);
// etc
}
myFormSubmit() {
// your event handling code
}
*/
function registerEventHandler(element, eventName, handler) {
if(element) {
if(element.attachEvent) { // Internet Explorer
element.attachEvent("on"+eventName, handler);
}
else if(element.addEventListener) { // Mozilla & Opera
element.addEventListener(eventName, handler, false);
}
}
}

// returns the text from within an element, stripped of any HTML tags
function getInnerText(element) {
if(typeof element == 'string') {
return element;
}
if(typeof element == 'undefined') {
return element;
}
if(element.innerText) { // IE only
return element.innerText;
}

var elementInnerText = "";
for(var i=0; i<element.childNodes.length; i++) {
var currentChildNode = element.childNodes[i];
if(currentChildNode.nodeType == Node.TEXT_NODE) {
elementInnerText += currentChildNode.nodeValue;
}
else if(currentChildNode.nodeType == Node.ELEMENT_NODE) {
elementInnerText += getInnerText(currentChildNode);
}
}
return elementInnerText;
}

// vk - a PHP-like round function
function round(val, precision) {
var multiple = 1;
for(var i=precision; i>0; i--) {
multiple *= 10;
}
return Math.round(val*multiple) / multiple;
}

// vk - http://www.mredkj.com/javascript/numberFormat.html#addcommas
function addCommas(nStr) {
nStr += '';
x = nStr.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
}

// Steve's
function show_hide_layers(obj) {
if(obj){
if(document.getElementById(obj).style.display!='none') {
document.getElementById(obj).style.display = 'none';
}
else {
document.getElementById(obj).style.display = 'block';
}
}
}

/**
* buttonSubmit(buttonObject) by Vlad - Usage example:
* <input type="button" value="Submit" onclick="buttonSubmit(this);">
* It disables the button so it can't be double-clicked, changes its text to
* 'Processing...', and submits the form to which the button belongs.
* Note that it doesn't work if buttonObject has the id 'submit'
*/

function buttonSubmit(buttonObject) {
buttonObject.disabled = true;
buttonObject.value = "Processing...";
buttonObject.form.submit();
}

/**
* VK - usage example:
* <a href="javascript:confirmClick('http://www.example.com', 'Are you sure?')">
*/

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

/*
ajax_request() accepts 2 or more arguments:
1st argument is the name of your custom-written javascript function ('handler')
that will process the server's response once it is received.
2nd argument is the request you're sending to the server, formatted as a
standard URL. Though it looks just like a GET request, the request will be
made as POST since our server doesn't accept unencrypted GET requests.
3rd through Nth arguments are optional and will be passed through to your
handler for your convenience.

Arguments will be passed to your handler in this order:
1st - The server's response to your request (always a string).
2nd - Your original request to the server (same as the second argument you
passed to ajax_request()).
3rd, 4th, etc - Any other arguments you passed to ajax_request().

Example:
ajax_request('example_request_handler', 'example.php?example=Y&test=Y', 'custom_1', custom_2);
function example_request_handler(response, request, custom1, custom2) {
// your code that does stuff based on response
}
*/

function ajax_request(response_handler, request_url) {
//* instantiate xmlHttp object
var xmlHttp;
try {
xmlHttp = new XMLHttpRequest(); // FireFox, Safari, & Opera
} catch(e) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer 6.0+
} catch(e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer 5.5+
} catch(e) {
alert("Your browser does not support AJAX.")
return;
}
}
}
//*/

//* set page and request variables based on request_url passed by user
var page;
var request;
if(request_url.match(/\?/)) { // both path and variables provided; split in two
var request_pieces = request_url.split(/\?/);
page = request_pieces[0];
request = request_pieces[1];
} else if(request_url.match('=')) { // variables provided but path not; use path of current page
page = location.href; // might need cleanup due to appended variables
if(page.match(/\?/)) { // cleanup
page = page.split(/\?/)[0];
}
request = request_url;
} else if(request_url) { // path provided but no variables (that's fine, as unlikely as it is to be used)
page = request_url;
request = '';
} else { // neither path nor variables provided... now we're getting silly; show an error
alert("Error: neither page nor parameters provided for AJAX call.");
return;
}
//*/

//* nested eval() necessary in order to pass the correct number of arguments to handler
var passthrough_arguments = arguments; // the current arguments variable will be lost as soon as the scope changes
var eval_string = "eval(response_handler)(xmlHttp.responseText, request_url";
for(var i = 2; i < passthrough_arguments.length; i++) {
eval_string = eval_string + ", passthrough_arguments[" + i + "]";
}
eval_string = eval_string + ");";
//*/

//* set javascript function to handle server response
xmlHttp.onreadystatechange = handle_state_changes;
function handle_state_changes() {
if (xmlHttp.readyState == 4) { // means that server has completed printing response
eval(eval_string);
}
}
//*/

//* send request to server
xmlHttp.open('post', page, response_handler); // open connection over post
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); // send content-type header
xmlHttp.setRequestHeader("Content-length", request.length); // send content-length header
xmlHttp.setRequestHeader("Connection", "close"); // send connection header
xmlHttp.send(request); // send request
//*/
}

// swaps position of two nodes
function swap_nodes(node_1, node_2) {
var placeholder = document.createElement('span'); // create temporary span node
node_1.parentNode.insertBefore(placeholder, node_1); // insert temporary span node before node 1
//	node_1.parentNode.removeChild(node_1); // remove node 1 from document tree
node_2.parentNode.insertBefore(node_1, node_2); // insert node 1 before node 2
//	node_2.parentNode.removeChild(node_2); // remove node 2 from document tree
placeholder.parentNode.insertBefore(node_2, placeholder); // insert node 2 before temporary span node
placeholder.parentNode.removeChild(placeholder); // remove temporary span node
}

// accepts 2 sibling nodes and returns position of second node minus position of first node
// in other words, returns the offset of node_2 compared to node_1
// returns positive number if node_2 is after node_1 and negative number if node_2 is before node_1 and 0 if they're not siblings
function get_node_offset(node_1, node_2) {
// loop through children of node_1 parent
var node_1_position = 0, node_2_position = 0;
var children = node_1.parentNode.childNodes;
for(var i = 0; children[i]; i++) {
if(children[i] == node_1) {
node_1_position = i;
}
if(children[i] == node_2) {
node_2_position = i;
}
if(node_1_position && node_2_position) {
return node_2_position - node_1_position;
}
}
return 0;
}

function varDump(object, depth) {
// calculate depth indent
if(!depth) {
depth = 0;
}
var depthIndent = '';
for(var i = 0; i < depth; i++) {
depthIndent = depthIndent + "\t";
}
depth = depth + 1;

// add current element to structure
structure = depthIndent + typeof object + ': ' + object + "\n";

// add children to structure, if this is an object (no children otherwise)
if(typeof object == 'object') {
for(var subObject in object) {
structure = structure + varDump(subObject, depth);
}
}

// done, pass this to alert() or such
return structure;
}
/**
* Jesse Jordan 2009
*/

function jsearchIconPop(popId) {
var lilPop = document.getElementById(popId);
if(lilPop.style.visibility == 'visible') {
lilPop.style.visibility = 'hidden';
lilPop.style.display = 'none';
} else {
lilPop.style.visibility = 'visible';
lilPop.style.display = 'block';
var lilPopText = document.getElementById(popId + '_pt');
lilPopText.focus();
}
}

function jsearchIconHide() {
var allDivs = document.getElementsByTagName('div');
for (var i = 0; i < allDivs.length; i++) {
var thisDiv = allDivs[i];
if (thisDiv.className == 'icon_pop_box') {
thisDiv.style.visibility = 'hidden';
thisDiv.style.display = 'none';
}
}
}

function jsearchNoteButtonSubmit(ptId, niId, popId, restaurantId) {
var ptext = document.getElementById(ptId);

document.body.style.cursor = 'wait';
var request_url = window.location.pathname + '?ajax_setnote=yes&for_rid=' + restaurantId + '&icon_id=' + niId + '&note=' + ptext.value;
ajax_request(jsearchNoteButtonHandler, request_url, niId, popId);
}

function jsearchNoteButtonHandler(response, request, niId, popId) {
var cname = document.getElementById(niId).className;
if(cname.substring(cname.length-1) == 'r') {
document.getElementById(niId).className = response == 'on' ? 'note_icon_onr' : 'note_icon_offr';
} else {
document.getElementById(niId).className = response == 'on' ? 'note_icon_on' : 'note_icon_off';
}
document.getElementById(niId).title = response == 'on' ? 'View/Change Note' : 'Add Note';

jsearchIconPop(popId);
document.body.style.cursor = 'default';
}

function jsearchFavButtonSubmit(fiId, restaurantId) {
document.body.style.cursor = 'wait';
document.getElementById(fiId).style.cursor = 'wait';

var request_url = window.location.pathname + '?ajax_setfav=yes&for_rid=' + restaurantId + '&icon_id=' + fiId;
ajax_request(jsearchFavButtonHandler, request_url, fiId);
}

function jsearchFavButtonHandler(response, request, fiId) {
var cname = document.getElementById(fiId).className;
if(cname.substring(cname.length-1) == 'r') {
document.getElementById(fiId).className = response == 'on' ? 'favorite_icon_onr' : 'favorite_icon_offr';
} else {
document.getElementById(fiId).className = response == 'on' ? 'favorite_icon_on' : 'favorite_icon_off';
}
document.getElementById(fiId).title = response == 'on' ? 'Remove from Favorites' : 'Add to Favorites';
document.body.style.cursor = 'default';
document.getElementById(fiId).style.cursor = 'pointer';
}

