// browser detection

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

if (BrowserDetect.browser == "Explorer" && BrowserDetect.version < 6)
{
  checkBrowserCookie();
}
else if (BrowserDetect.browser == "Netscape" && BrowserDetect.version < 6)
{
  checkBrowserCookie();
}
else
{
  // must be ok 
}

function checkBrowserCookie() {
  if (Cookie.get("upgradeBrowser") != "Y") {
    Cookie.set("upgradeBrowser","N");	     
    document.location="upgrade_browser.jsp";
  }
}

function popup(theUrl,winName,features)
{
window.open(theUrl,winName,features);
void 0;
}

function printThis(pageToPrint)
{
window.open(pageToPrint,'printPop','width=620,height=500,toolbar=no,status=no,scrollbars=yes,resizable=no,location=no');
void 0;
}

function openInfoBox(theBoxToOpen)
{
document.getElementById(theBoxToOpen).style.display='block';
void(0);
}

function closeInfoBox(theBoxToOpen)
{
document.getElementById(theBoxToOpen).style.display='none';
void(0);
}
				
function shippingAddressSelect()
{

	var x=document.getElementById("shippingOptions");
	var theValueINeed = x.options[x.selectedIndex].value;
	
	if(theValueINeed == '@')
	{
	
	}
	else
	{
		document.location.href=theValueINeed;
	}

}
				
function paymentTypeSelect()
{

	var x=document.getElementById("paymentOptions");
	var theValueINeed = x.options[x.selectedIndex].value;
	var theCurrentValue = "creditCardArea";
	
	if(theValueINeed == '@')
	{
		document.getElementById(theCurrentValue).style.display='none';
	}
	else
	{
		document.getElementById(theValueINeed).style.display='block';
		theCurrentValue = theValueINeed;
	}

}

/*	assign AJAX behaviors  */
var mdl;

window.addEvent('domready', function() {

	//--------------------------

	$$('.findReplacementLink').addEvent('click',function() {
//		$('pleaseWaitThrobber').setStyle('display','none');
		mdl = new Modalizer().modalShow({
			'hideOnClick': false,
			'width': '100%',
			'modalStyle': {
				'opacity':.40,
				'background-color':'#000000'
			}
		});

		backorderId = this.id.split('_');
		var query = this.rel.split('|||');
		new Ajax('/checkout_replacement.jsp', {
			method: 'post',						//-- POST highly recommended - IE is "sticky" with AJAX GET's
			data: 'item_id='+backorderId[1]+'&basketItem='+query[0]+'&quantity='+query[1],	//- querystring values - input for backorder "popup" generation
			update: $('findReplacementContainer'),
			onComplete: function() {
				$$('.closeModal').addEvent('click',function() {
					$('findReplacementContainer').setStyle('display','none');
					mdl.modalHide();
				});
				sethtml('findReplacementContainer', $('findReplacementContainer').innerHTML);
				//eval(sethtml('findReplacementContainer', $('findReplacementContainer').innerHTML));
        //eval($('findReplacementContainer').innerHTML);				
				$('findReplacementContainer').setStyle('display','block');				
			}
		}).request();
	});

	//--------------------------

	$$('.permissionsChangeRequest').addEvent('click',function() {
		mdl = new Modalizer().modalShow({
			'hideOnClick': false,
			'width': '100%',
			'modalStyle': {
				'opacity':.40,
				'background-color':'#000000'
			}
		});
		
    var query = this.rel.split('|||');
		new Ajax('/emailPopupBox.jsp', {
			method: 'post',
			update: $('permissionsChangeContainer'),
			data: 'name='+query[0]+'&email='+query[1]+'&user='+query[2]+'&userEmail='+query[3],
			onComplete: function() {
				$$('.closeModal').addEvent('click',function() {
					$('permissionsChangeContainer').setStyle('display','none');
					mdl.modalHide();
				});
				$('permissionsChangeContainer').setStyle('display','block');
			}
		}).request();
	});

	//--------------------------

	$$('.orderHistoryModal').addEvent('click',function() {
		mdl = new Modalizer().modalShow({
			'hideOnClick': false,
			'width': '100%',
			'modalStyle': {
				'opacity':.40,
				'background-color':'#000000'
			}
		});

    orderNumber = this.id.split('_');
		new Ajax('/externalOrderDetail.jsp', {
			method: 'post',
			update: $('orderHistoryContainer'),
			data: 'orderNumber='+orderNumber[1],	//- querystring values - input for backorder "popup" generation
			onComplete: function() {
				$$('.closeModal').addEvent('click',function() {
					$('orderHistoryContainer').setStyle('display','none');
					mdl.modalHide();
				});
				$('orderHistoryContainer').setStyle('display','block');
			}
		}).request();
	});

	//--------------------------

	$$('.bvAddToCart').addEvent('click',function() {	  
	  catalogItemId = this.id.split('_');
		if(cartConfigOption != 'Y' && cartConfigOption != 'y' && cartConfigOption != 'YES' && cartConfigOption != 'yes') {
			//-- do modal popover
			mdl = new Modalizer().modalShow({
				'hideOnClick': false,
				'width': '100%',
				'modalStyle': {
					'opacity':.40,
					'background-color':'#000000'
				}
			});			
			parentCoords = this.getCoordinates();
			var el = new Element('div', {
				'id': 'addItemPopover_'+catalogItemId[1],
			    'class': 'addModal'
			});
			el.injectInside(document.body);
	    formId = this.id.split('button');
	    var query = $('form'+formId[1]).elements;        
      var queryString = "";
      for (var i = 0; i < $('form'+formId[1]).length; i++) {
        if (i > 0) {queryString+="&"}
        queryString += query[i].name + "=" + query[i].value;
      }			
			new Ajax('/itemsProc.jsp', {
				method: 'post',						//-- POST highly recommended - IE is "sticky" with AJAX GET's
				data: queryString,	//- querystring values - input for backorder "popup" generation
				update: el,
				onComplete: function() {
      	  if (Cookie.get("pRLN") == "Y") {
            Cookie.set("pRLN","N");	 
            document.location.reload();
            return;  
      	  }				
					el.setStyles({
							'top': (parentCoords.top-el.offsetHeight)+'px',
							'left': (parentCoords.right-el.offsetWidth)+'px'
					});

  				new Ajax('setFreeShippingMessageAjax.jsp', {
  				  method: 'post',
  				  update: $('cartArea'),
      			data: 'update=true',	//- querystring values - input for backorder "popup" generation
      			onComplete: function() {
              var complete = "true";
      			}			  
  				}).request();
    				
					$$('.bvAddToCartTipPrefClick').addEvent('click',function() {
						if(this.checked) {
						  new Ajax('cartConfigOptionAJax.jsp', {
      				  method: 'post',
          			data: 'update=true',	//- querystring values - input for backorder "popup" generation
          			onComplete: function() {
						      $('addItemPopover_'+catalogItemId[1]).remove();
						      mdl.modalHide();          			
                  document.location.reload();    							  
						    }
						  }).request();
							//Cookie.set('ADD_TO_CART_HINT_PREFERENCE', 'tip', {duration: 0});
						} else {
							//Cookie.set('ADD_TO_CART_HINT_PREFERENCE', 'popover', {duration: 0});
						} // if..else
					});
					
					$$('.closeModal').addEvent('click',function() {
						$('addItemPopover_'+catalogItemId[1]).remove();
						mdl.modalHide();
					});
				}
			}).request();
		} else {
			//-- do animated hint

			//-- any CSS changes should be reflected here
			var hintWidth = 103;
			var hintTopPadding = 3;
			var hintLeftPadding = 5;
			var hintRightPadding = 5;
			var cartIconWidth = 25;
			var cartIconHeight = 20;

			//-- do AJAX add to cart and return items added
			parentCoords = this.getCoordinates();	
			var el = new Element('div', {
			    'styles': {
					'top': (parentCoords.top-hintTopPadding)+'px',
					'left': (parentCoords.right-hintWidth-cartIconWidth-hintRightPadding-hintLeftPadding)+'px',
			        'height': '0px'
			    },
			    'class': 'itemAddedHintBox'
			}).setHTML('Adding...');
			el.injectInside(document.body);

			var hintFx = new Fx.Styles(el, {duration: 500, transition: Fx.Transitions.linear});
			hintFx.start({'height': [0,cartIconHeight-hintTopPadding], 'top': [parentCoords.top-hintTopPadding,parentCoords.top-cartIconHeight]} ).chain(function(){
				//catalogItemId = this.id.split('_');
				//new Ajax('/_ws/additemstocart.html', {
		    formId = this.id.split('button');
		    var query = $('form'+formId[1]).elements;        
        var queryString = "";
        for (var i = 0; i < $('form'+formId[1]).length; i++) {
          if (i > 0) {queryString+="&"}
          queryString += query[i].name + "=" + query[i].value;
        } 				
				new Ajax('/itemsProc.jsp', {
					method: 'post',						//-- POST highly recommended - IE is "sticky" with AJAX GET's
					//data: 'item_id='+catalogItemId[1],	//- querystring values - input for addItemsToCart Web Service
					data: queryString,
					onComplete: function(responseText){
        	  if (Cookie.get("pRLN") == "Y") {
              Cookie.set("pRLN","N");	 
              document.location.reload();
              return;  
        	  }					
						itemsAdded = responseText;		//- just to make it clear what the AJAX request is returning in responseText
						hintFx.start({}).chain(function(){
							el.setHTML('('+itemsAdded+') Items Added');
							hintFx.start.delay(1000, this,{'opacity': [1,0]});
						}).chain(function(){
							el.remove();
						});
    				new Ajax('setFreeShippingMessageAjax.jsp', {
    				  method: 'post',
    				  update: $('cartArea'),
        			data: 'update=true',	//- querystring values - input for backorder "popup" generation
        			onComplete: function() {
                var complete = "true";
                if (Cookie.get("mQLR") == "Y") {
            			mdl = new Modalizer().modalShow({
            				'hideOnClick': false,
            				'width': '100%',
            				'modalStyle': {
            					'opacity':.40,
            					'background-color':'#000000'
            				}
            			});               			
            			var el = new Element('div', {
            				'id': 'addItemPopover_'+catalogItemId[1],
            			    'class': 'addModal'
            			});
            			el.injectInside(document.body); 
        					el.setStyles({
        							'top': (parentCoords.top-el.offsetHeight)+'px',
        							'left': (parentCoords.right-el.offsetWidth)+'px'
        					});            			
            			var insideString = "<h3>We're sorry we could not process your request.</h3>";
            			insideString+="<div style=\"font-size: 11px; font-family: helvetica,sans-serif;\"><p>Only 10 Merchandising Support materials can be added to an order. Remove items from the cart to continue.</div></p>";
            			insideString+="<div class=\"buttons\">";
            			insideString+="<input class=\"greenButton\" type=\"button\" id=\"catalogid_22\" value=\"View Cart\" onclick=\"document.location.href='/checkout.jsp'\" style=\"float: right; margin-left: 10px;\" />";
            			insideString+="<input class=\"greenButton\" type=\"button\" id=\"catalogid_22\" value=\"Close\" onclick=\"document.location.reload()\" style=\"float: right;\" />";
            			insideString+="</div>";            			
                  el.innerHTML = insideString;
                  Cookie.set("mQLR","N");                              
                }
        			}			  
    				}).request();						
					}
				}).request();				
			}.bind(this));
		} // if..else
	});

	//--------------------------

	$$('.bvAddTenMore').addEvent('click',function() {
		parentTable = this.parentNode.parentNode.parentNode.parentNode; //--(a)->td->tr->tfoot->table
		//count = $ES('tbody tr',parentTable).length * 2 - 2;
		count = $('totalOrderCountFields').value;
    var fieldNumber = document.quickForm.totalOrderCountFields.value*1;
    var newCount = fieldNumber + 10;
    document.quickForm.totalOrderCountFields.value = newCount;		
		var newRows = Array();
		for(i=0;i<5;i++) {			
			newRows[i] = new Element('tr');
			new Element('input', {
			    'type': 'text',
			    'name': 'item_'+count,
			    'value': '',
			    'size': '22'
			}).injectInside(new Element('td').injectInside(newRows[i]));
			new Element('input', {
			    'type': 'text',
			    'name': 'quantity_'+count,
			    'value': '',
			    'size': '6'
			}).injectInside(new Element('td',{'class':'mid'}).injectInside(newRows[i]));
			count++;
			new Element('input', {
			    'type': 'text',
			    'name': 'item_'+count,
			    'value': '',
			    'size': '22'
			}).injectInside(new Element('td').injectInside(newRows[i]));
			new Element('input', {
			    'type': 'text',
			    'name': 'quantity_'+count,
			    'value': '',
			    'size': '6'
			}).injectInside(new Element('td').injectInside(newRows[i]));
			newRows[i].injectInside($E('tbody',parentTable));
			count++;
		} // for

		var rowFx = new Fx.Elements(newRows, {duration: 1000, transition: Fx.Transitions.linear});
		rowFx.start({
		    '0': { 'backgroundColor': ['#FFFD66','#FFFFFF'] },
		    '1': { 'backgroundColor': ['#FFFD66','#FFFFFF'] },
		    '2': { 'backgroundColor': ['#FFFD66','#FFFFFF'] },
		    '3': { 'backgroundColor': ['#FFFD66','#FFFFFF'] },
		    '4': { 'backgroundColor': ['#FFFD66','#FFFFFF'] }
		});
	});

	//--------------------------

	$$('.bvQuickAdd').addEvent('click',function() {
		mdl = new Modalizer().modalShow({
			'hideOnClick': false,
			'width': '100%',
			'modalStyle': {
				'opacity':.40,
				'background-color':'#000000'
			}
		});
		$('pleaseWaitThrobber').style.display="block";
	});
	
  /*
    Login Box
  */
  if ($('loginSuccessArea') != null) {
  /*
    (function(){
      var anFxLS = new Fx.Style($('loginSuccessArea'), 'opacity').start(1,0);
      anFxLS.onComplete = function(){$('loginSuccessArea').style.display='none';};    
    }).delay(3000);
  */
  }	

	//--------------------------
	
}); // ondomready


function openInfoBox2(theBoxToOpen)
{
  var e = document.getElementById(theBoxToOpen); 
  e.style.display='block';
  void(0);
}

/*
  I Boxes
*/
function openInfoBox3(theBoxToOpen, code) {
  var e = document.getElementById(theBoxToOpen);
  var anFx1 = new Fx.Style(theBoxToOpen, 'opacity').set(0);
  e.innerHTML=standardMessages[code];
  e.style.display='block';
  anFx1.start(0,1);           
}
function closeInfoBox3(theBoxToOpen) {
  var e = document.getElementById(theBoxToOpen);
  var anFx1 = new Fx.Style(theBoxToOpen, 'opacity').start(1,0);
  anFx1.onComplete = function(){e.style.display='none'};      
}

/*
  Set JS
*/

function sethtml(div,content)
{
    var search = content;
    var script;
         
    while( script = search.match(/(<script[^>]+javascript[^>]+>\s*(<!--)?)/i))
    {
      search = search.substr(search.indexOf(RegExp.$1) + RegExp.$1.length);
      
      if (!(endscript = search.match(/((-->)?\s*<\/script>)/))) break;
      
      block = search.substr(0, search.indexOf(RegExp.$1));
      search = search.substring(block.length + RegExp.$1.length);
      
      var oScript = document.createElement('script');
      oScript.text = block;
      document.getElementsByTagName("head").item(0).appendChild(oScript);
    }
   
    document.getElementById(div).innerHTML=content;
}

/*
  disable page function
*/
function disablePage() {
	mdl = new Modalizer().modalShow({
		'hideOnClick': false,
		'width': '100%',
		'modalStyle': {
			'opacity':.40,
			'background-color':'#000000'
		}
	});
}

