function suggestionBoxHover(box_id){
	var id = box_id;
	$(id).css('background','url(http://media.canon-asia.com/v3.5media/common/suggestionbox_hover.jpg)');
}

function suggestionBoxOut(box_id2){
	var id2 = box_id2;
	$(id2).css('background','none');
}

var cookieObject = function(){
	
	function add(key,value){
		document.cookie = key+"="+value+"; path=/";
	};
	
	function addExpire(c_name,value,days){

	    var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));

	    document.cookie=c_name+ "=" +escape(value)+((days==null) ? "" : ";  expires="+date.toGMTString()+"; path=/");
	    
    }
	
	function get(name){
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1, c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
		}
		return null;
	};
	
	return {
		add : add,
		addExpire : addExpire,
		get : get
	};
}();


jQuery( function () { main.initiate(); });

var naviLinkDoCssChange = true;

var main = ( function () {
	
	var config = {
		
		//--common--//
		baseUrl : '',
		surveyOption : '',
		active : 'active',
		vertical : '.vertical-align',
		
		//--navigation--//
		productSubcategories : 'div.product_categories ul li',
		logo : '.logo',
		searchText : 'div.search input',
		mainNavTabs : 'div.main_navigation div.navigation_tabs li a',
		mainNavActive : 'main_navigation_active',
		sub_navigation : 'div.sub_navigation',
		product_category : 'div.product_category',
		footerLinks : 'li.footer_arrow',
		
		//-- form behaviour --//
		checkbox : '.new_checkbox'
	},
	
	params = {
		speed : 310,
		timer : 200,
		survey : 'cs_survey',
		visibility : false
	},
	
	priv = {
		
		//--common--//
		
		//only launched for ie
		//removes outline on anchor elements
		blurAnchors : function () {
			var a = jQuery(document).find('a');
			for(var i = 0; i < a.length; i++){
			    a[i].onfocus = function () {
			        this.blur();
			    };
			}
		},
		
		verticalAlign : function () {
			$.each(jQuery(config.vertical), function (i, obj) {
				var $this = jQuery(obj),
					objHeight = $this.outerHeight(),
					parentHeight = $this.parent().innerHeight(),
					verticalMargin = (parentHeight - objHeight) / 2;
				$this.css({marginTop : verticalMargin});
			});
		},
		
		toggleCheckbox : function () {
			jQuery(config.checkbox)
			
				//live event binding is for ajax content uploads
				.live('mouseover', function () { jQuery(this).css({color : '#e21a22'}); })
				.live('mouseout', function () { jQuery(this).css({color : '#222222'}); });
		},
		
		//--navigation--//
		navigationLogoRedirect : function () {
			jQuery(config.logo).click( function () {
				document.location.href = './';
			});
		},
		
		navigationSearch : function () {
			var dafaultValue = jQuery(config.searchText).val();
			jQuery(config.searchText)
			.focus( function () {
				jQuery(this).css({color: '#666666'})
				if (jQuery(this).val() == dafaultValue) jQuery(this).val('');
			})
			.blur( function () {
				jQuery(this).css({color : '#a3a3a3'});
				if (jQuery(this).val() == '') jQuery(this).val(dafaultValue);
			});
		},
		
		navigationMainHighlight : function () {
			jQuery(config.mainNavTabs).click(
				function () {
					jQuery('.' + config.mainNavActive).removeClass(config.mainNavActive);
					jQuery(this).addClass(config.mainNavActive);
				}
			)
		},
		
		//-- category page --//
		
		productCategoryHover : function () {
			jQuery(config.product_category)
			.hover(
				function() {
					jQuery(this).addClass('product_category_roll');
				}, 
				function() {
					jQuery(this).removeClass('product_category_roll');
				});
		},
		
		
		//-- product finder --//
		productFinderResultsHover : function () {
			jQuery('.productfinder_result_0, .productfinder_result_3')
				.live('mouseover', function() {
					jQuery(this).addClass('productfinder_small_roll');
				})
				.live('mouseout', function() {
					jQuery(this).removeClass('productfinder_small_roll');
				});
			
			jQuery('.productfinder_result_1, .productfinder_result_2')
				.live('mouseover', function() {
					jQuery(this).addClass('productfinder_big_roll');
				})
				.live('mouseout', function(){
					jQuery(this).removeClass('productfinder_big_roll');
				});
		}
	};

	return {
		
		//--common--//
		setBaseUrl : function (url) {
			config.baseUrl = url;
		},
		
		getBaseUrl : function () {
			return config.baseUrl;
		},
		
		setCookie : function ( key, value ){
			document.cookie = key+"="+value+"; path=/";
		},
		
		getCookie : function (name){
			var cookieArray = document.cookie.split(';');
			for ( i in cookieArray ) {
				cookieArray[i] = cookieArray[i].replace(/^\s+|\s+$/g,"");
				var components = cookieArray[i].split('=');
				if (key == components[0]) {
					return components[1];
				}
			}
			return null; 
		},
		
		detectIE6 : function () {
			return $.browser.msie6 = (
				$.browser.msie 
				&& typeof(XMLHttpRequest) == 'undefined' 
				&& /MSIE 6\.0/i.test(window.navigator.userAgent) 
				&& !/MSIE 7\.0/i.test(window.navigator.userAgent) 
				&& !/MSIE 8\.0/i.test(window.navigator.userAgent)
			);
		},
		
		getNthElement : function (element, n) {
			var arr = [];
			var i = n - 1;
			if (i < 2) return null;
			for ( i; i < element.length; i += n){
				arr.push(i);
			};
			return arr;
		},

		getRandomNumber : function (arr) {
			return randomNumber = arr[Math.ceil(Math.random() * arr.length)-1];
		},
		
		filterUniqueItems : function ( obj ) {
			var arr = [];
			outerloop : for ( var i = 0, n = obj.length; i < n; i++ ) {
				for ( var x = 0, y = arr.length; x < y; x++ ) {
					if ( arr[x] === obj[i] ) continue outerloop;
				};
				arr[arr.length] = obj[i];
			};
			return arr;
		},
		
		//--navigation--//
		
		highlightTopSegments : function (type) {
			jQuery('#' + type).addClass(config.active);
		},
		
		setActiveNavItem : function (item) {
			jQuery('#tab_' + item).addClass(config.mainNavActive);
		},
		
		showSubnavigation : function (productTab) {
			var productTab = '#tab_' + productTab,
				ie6 = main.detectIE6();
			
			jQuery(productTab + ',' + config.sub_navigation).hover(
				function () {
					if(!params.visibility) {
						
						params.visibility = true;
						
						if (ie6) jQuery('select').hide();
						
						jQuery(config.sub_navigation)
							.css({display : 'block'})
							.stop()
							.animate({opacity : 1}, params.speed);
					};
					
					if(naviLinkDoCssChange)
						jQuery(productTab).addClass(config.mainNavActive);
				},
				function () {
					params.visibility = false;
					
					window.setTimeout( function () {
						if (!params.visibility) {
							
							if (ie6) jQuery('select').fadeIn(params.speed);
							
							jQuery(config.sub_navigation).stop().animate({opacity : 0}, params.speed, function () {
								jQuery(this).css({display : 'none'});
							});
							
							if(naviLinkDoCssChange)
								jQuery(productTab).removeClass(config.mainNavActive);
						};
					}, params.timer);
				}
			);
		},
		
		// toggle down/up solution container
		toggleViewDiv: function (divId) {
			jQuery('#solution'+divId).slideToggle('fast');
			//jQuery('#solution'+divId).css("opacity", 0.4).slideToggle('fast').animate({opacity:1});
			jQuery('#arrow'+divId).toggleClass("solution_close");
			return false;
		},
				
		
		initiate : function () {
			//-- common --//
			if ($.browser.msie) priv.blurAnchors();
			priv.verticalAlign();

			//-- navigation --//
			priv.navigationLogoRedirect();
			priv.navigationSearch();
			priv.navigationMainHighlight();
			priv.toggleCheckbox();
			
			//-- category page --//
			priv.productCategoryHover();
			
			//product finder
			priv.productFinderResultsHover();
			
		}
	};
	
} ) ();

