/* Provident Consumer
=====================*/

String.prototype.parseColor = function() {
  var color = '#';
  if(this.slice(0,4) == 'rgb(') {
    var cols = this.slice(4,this.length-1).split(',');
    var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3);
  } else {
    if(this.slice(0,1) == '#') {
      if(this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase();
      if(this.length==7) color = this.toLowerCase();
    }
  }
  return(color.length==7 ? color : (arguments[0] || this));
}


var App = {};

App.Lightbox = function(){
	return {
		groups : {},
		initialize : function(){
			this.images = $$('a.lightbox');
			if(this.images.length!=0){
				this.lightbox = Element.fromHTML('<div><div class="lightbox"><div class="t"><div class="tl"></div><div class="tr"></div></div><div class="image_outer"><table cellpadding="0" cellspacing="0"><tr><td class="l"><div></div></td><td><div class="image"><div class="image_inner"><div class="loader"></div><img /></div></div></td><td class="r"><div></div></td></tr></table></div><div class="controls"><a href="#" class="previous">Previous</a><a href="#" class="next">Next</a></div><div class="title">Title</div><div class="close"><a href="#" class="close">Close</a></div><div class="b"><div class="bl"></div><div class="br"></div></div></div></div>');
				this.lightbox.id = 'lightbox';
				document.body.appendChild(this.lightbox);
				$(this.lightbox).hide();
				this.image = this.lightbox.getElementsByTagName('img')[0];
				$(this.image).hide();
				this.controls = this.lightbox.getElementsByClassName('controls')[0];
				this.controls.hide();
				this.title = this.lightbox.getElementsBySelector('div.title')[0];
				this.title.hide();
				this.close = this.lightbox.getElementsBySelector('a.close')[0];
				this.next = this.lightbox.getElementsByClassName('next')[0];
				this.prev = this.lightbox.getElementsByClassName('previous')[0];
				this.imageDiv = this.lightbox.getElementsByClassName('image_inner')[0];
				this.loader = this.lightbox.getElementsByClassName('loader')[0];
				this.loader.hide();
				this.overlay = new Element('div', {id: 'overlay'});
				this.overlay.hide();
				document.body.appendChild(this.overlay);
				this.addListeners();

				$A(['/img/site/layout/loan/lightbox_r.png',
					'/img/site/layout/loan/lightbox_tr.png',
					'/img/site/layout/loan/lightbox_tr.png',
					'/img/site/layout/loan/lightbox_b.png',
					'/img/site/layout/loan/lightbox_bl.png',
					'/img/site/layout/loan/lightbox_br.png',
					'/img/site/layout/loan/lightbox_close.png'
				]).each(function(image){
					var img = new Image();
					img.src = image;
				});

			}
		},
		addListeners : function(){
			this.images.each(function(link){
				var rel = link.rel;
				if(rel){
					if(!this.groups[rel]){
						this.groups[rel]=$A();
					}
					this.groups[rel].push(link.href);
				}
				Event.observe(link, 'click', this.show.bindAsEventListener(this));
			}.bind(this));
			Event.observe(this.next, 'click', this.update.bindAsEventListener(this));
			Event.observe(this.prev, 'click', this.update.bindAsEventListener(this));
			Event.observe(this.close, 'click', this.hide.bindAsEventListener(this));
		},
		show : function(e){
			this.hideSelects();
			this.overlay.show();

			this.overlay.setStyle({
				height: document.body.offsetHeight+'px'
			});

			this.lightbox.setStyle({
				opacity : 1
			});
			this.imageDiv.setStyle({
				width: '220px',
				height: '170px'
			});
			this.image.hide();
			this.loader.show();
			this.lightbox.show();

			var width = Client.width();
			var height = Client.height();
			var dimensions = this.lightbox.getDimensions();

			var l = (width/2)-(dimensions.width/2)+'px';
			var t = (height/2)-(dimensions.height/2)+Client.scrollTop()+'px';

			this.lightbox.setStyle({
				top : t,
				left : l
			});
			this.lightbox.show();
			this.update(e);
		},
		update : function(e){
			Event.stop(e);
			this.title.innerHTML='&nbsp;';
			new Effect.Opacity(this.image, {duration: 0.5, from: 1, to :0});
			var el = Event.element(e);
            		if(el.tagName.toLowerCase()=='img'||el.tagName.toLowerCase()=='span'){
		                el = el.parentNode;
		        }
			var rel = el.rel;
			var href = el.pathname;


			if(rel&&href){
				el = $$('a.lightbox').find(function(f){
					return f.pathname == href;
				});
			}

			if(href.indexOf('/')){
				href = '/'+href;
			}

			var title;

			if(el.down().title){
				title = el.down().title;
			}

			if(rel){
		        	var i = this.groups[rel].indexOf(el.href);
		        	if(i!=0){
		        		var prev = {
		        			href:this.groups[rel][i-1],
		        			rel:rel
		        		};
		        	}
		        	if(i!=this.groups[rel].length-1){
		        		var next = {
		        			href:this.groups[rel][i+1],
		        			rel:rel
		        		};
		        	}
		        }else{
		        	next=null;
		        	prev=null;
		        }
            		img = new Image();
            		img.onload = function(){
            			this.onload(img, prev, next, title);
            		}.bind(this);
		        img.src=href;
		},
		onload : function(img, prev, next, title){

			var dimensions = this.lightbox.getDimensions();
			var _dimensions = this.imageDiv.getDimensions();

			var width = Client.width();
			var height = Client.height();

			var left = (width/2)-((dimensions.width-_dimensions.width+img.width)/2);
			var top = (height/2)-((dimensions.height-_dimensions.height+img.height)/2);

			top = top + Client.scrollTop();

			if(top<10){
				top=10;
			}
			if(left<10){
				left=10;
			}

			var str = 'left : '+left+'px; top: '+top+'px;';
			var _str = 'width : '+img.width+'px; height : '+img.height+'px;';


			new Effect.Parallel([new Effect.Morph(this.lightbox, {style : str}), new Effect.Morph(this.imageDiv, {style: _str})],
				{
					afterFinish : function(){
						if(next||prev||title){
							if(title){
								this.title.innerHTML=title;
							}else{
								this.title.innerHTML = '&nbsp;';
							}
							if(next){
								this.next.rel = next.rel;
								this.next.href = next.href;
								this.next.show();
							}else{
								this.next.hide();
							}
							if(prev){
								this.prev.rel = prev.rel;
								this.prev.href = prev.href;
								this.prev.show();
							}else{
								this.prev.hide();
							}
							this.controls.show();
						}
						if(title){
							this.title.show();
						}else{
							this.title.hide();
						}
						this.image.setStyle({opacity : 0});
						this.image.src= img.src;
						this.loader.hide();
						this.image.show();
						new Effect.Opacity(this.image, {duration: 0.5, from: 0, to: 1});
					}.bind(this)
				}
			);
		},
		hide : function(e){
			if(e){
				Event.stop(e);
			}

			new Effect.Opacity(this.lightbox, {
				duration: 0.5,
				from: 1,
				to: 0,
				afterFinish : function(){
					this.lightbox.hide();
					this.overlay.hide();
					this.showSelects();
				}.bind(this)
			});
		},
		hideSelects : function(){
			if(!document.all) return;
			$A(document.getElementsByTagName('select')).each(function(select){
				$(select).hide();
			});
		},
		showSelects : function(){
			if(!document.all) return;
			$A(document.getElementsByTagName('select')).each(function(select){
				$(select).show();
			});
		}
	}
}();

App.VideoPlayer = function(){
	return {
		update : function(name, url, movieName){
			var movie = this.getMovie(name);
			movie.playFile(url, movieName);
		},
		getMovie : function(name){
    		if (navigator.appName.indexOf("Microsoft") != -1) {
	        	return window[name];
	        	return document.getElementById(name);
    		}else {
        		return document[name];
		    }
		}
	}
}();

var FONTS = {
	"enGB" : "helv_bold_we.ttf",
	"esMX" : "helv_bold_we.ttf",
	"csCZ" : "helv_bold_ce.ttf",
	"huHU" : "helv_bold_ce.ttf",
	"plPL" : "helv_bold_ce.ttf",
	"roRO" : "helv_bold_ce.ttf",
	"skSK" : "helv_bold_ce.ttf",
	"ruRU" : "LT_54687.ttf"
};

App.ReplaceImages = function(){
	return {
		url : "/img/site/headings/headings.php",
		initialize : function(){

			if(Client.browser=='Explorer' && Client.version<7){
				this.url = "/img/site/headings/headings.php";
			}else{
				this.url = "/img/site/headings/headings3.php";
			}

			var font = FONTS[LOCALE];

			$$('.heading').each(function(element){

				var bg = '#FFFFFF';
				var parentN = element.parentNode.parentNode;
				if(parentN.className){
					var pClassName = parentN.className;
					if(pClassName.indexOf('blue')!=-1){
						bg = "#005AAA";
					}
					if(pClassName.indexOf('skyblue')!=-1){
						bg = "#E5EEF6";
					}
					if(pClassName.indexOf('red')!=-1){
						bg = "#EF3E33";
					}
				}

				var className = element.className;
				if(className.indexOf('h9')!=-1){
					this.replace(element, {size: 9, font: font, background: bg});
					return;
				}
				if(className.indexOf('h10')!=-1){
					this.replace(element, {size: 10, font: font, background: bg});
					return;
				}
				if(className.indexOf('h11')!=-1){
					this.replace(element, {size: 11, font: font, background: bg});
					return;
				}
				if(className.indexOf('h12')!=-1){
					this.replace(element, {size: 12, font: font, background: bg});
					return;
				}
				if(className.indexOf('h13a')!=-1){
					this.replace(element, {size: 13, font: font, width: "auto", background: bg});
					return;
				}
				if(className.indexOf('h13')!=-1){
					this.replace(element, {size: 13, font: font, background: bg});
					return;
				}
				if(className.indexOf('h14')!=-1){
					this.replace(element, {size: 14, font: font, background: bg});
					return;
				}
				if(className.indexOf('h15')!=-1){
					this.replace(element, {size: 15, font: font, background: bg});
					return;
				}
				if(className.indexOf('h16')!=-1){
					this.replace(element, {size: 16, font: font, background: bg});
					return;
				}
				if(className.indexOf('h17')!=-1){
					this.replace(element, {size: 17, font: font, background: bg});
					return;
				}
				if(className.indexOf('h18')!=-1){
					this.replace(element, {size: 18, font: font, background: bg});
					return;
				}
				if(className.indexOf('h19')!=-1){
					this.replace(element, {size: 19, font: font, background: bg});
					return;
				}
				if(className.indexOf('h20')!=-1){
					this.replace(element, {size: 20, font: font, background: bg});
					return;
				}
				if(className.indexOf('h21')!=-1){
					this.replace(element, {size: 21, font: font, background: bg});
					return;
				}
				if(className.indexOf('h22')!=-1){
					this.replace(element, {size: 22, font: font, background: bg});
					return;
				}
			}, this);



		},
		replace : function(element, options){
			if(!Element.hasClassName(element, 'replaced')){
				Element.addClassName(element, 'replaced');
				var color = element.getStyle('color').parseColor('#000000').replace('#','');
				var bgcolor = element.getStyle('border-color').parseColor().replace('#','');
				//var bgcolor = options.background.replace('#', '');
				var size = element.getStyle('font-size');
				var width = element.offsetWidth-parseInt(element.getStyle('padding-left'), 10)-parseInt(element.getStyle('padding-right'), 10);
				var text = this.getText(element);
				for(var j=0; j<element.childNodes.length; j++){
					element.removeChild(element.firstChild);
				}
				var url = this.url+"?t="+escape(text)+"&c="+color+"&b="+bgcolor+"&s="+options.size+"&f="+options.font;
				if(!options.width){
					url=url+'&w='+parseInt(width,10);
				}
				if(document.all){
					url=url+'&br=ie';
				}
				var holding = new Image();
				holding.onload = function(){
					App.ReplaceImages.draw(this, element, text, this.width, this.height);
				}
				/* Debug stuff removed */
				holding.src=url;
			}
		},
		getText : function(element){
			if(typeof element == "string"){
				return element;
			}else{
				if(typeof element == "undefined"){
				return element;
			}
	    	}
	    	var text = "";
	    	var kids = element.childNodes;
	    	for(var i=0;i<kids.length;i++) {
	    		if(kids[i].nodeType == 1){
	    			text += this.getText(kids[i]);
		    	}else{
	  	  		if(kids[i].nodeType == 3){
	    				text += kids[i].nodeValue;
	    			}
	    		}
		  }
		  return text;
		},
		draw : function(holding, element, text, width, height){
			/* IE Only... */
			if(Client.browser=='Explorer'){
				var image = document.createElement('img');
				image.style.backgroundPosition = '0 0';
				image.style.backgroundRepeat = 'no-repeat';
				image.style.backgroundImage = "url("+holding.src+")";
				image.style.width = holding.width+'px';
				image.style.height = holding.height+'px';
				image.alt = text;
				image.src = '/img/site/magic.png';
				element.appendChild(image);
				/*var span = document.createElement("span");
				span.innerHTML = text;
				span.className = 'original';
				element.appendChild(span);								*/
				element.style.visibility = 'visible';

			}else{
				var image = document.createElement('img');
				image.width = holding.width;
				image.height = holding.height;
				image.style.width = holding.width+'px';
				image.style.height = holding.height+'px';
				image.alt = text;
				image.src = holding.src;
				element.appendChild(image);
				var span = document.createElement("span");
				span.innerHTML = text;
				span.className = 'original';
				element.appendChild(span);
				element.style.visibility = 'visible'
			}

		}
	};
}();

App.LoanHelp = function(){
	return {
		initialize : function(element){
			this.element = $(element);
			//this.wrapper = $('loan_help');
			//this.content = $('loan_help_content');
			//this.defaultContent = this.content.innerHTML;
			this.ths = this.element.getElementsByTagName('th');
			this.tooltips = $A(this.element.getElementsByClassName('help'));
			this.addListeners();
			this.build();
		},
		build : function(){
			this.tooltip = new Element('div', {className: 'tooltip'});
			this.tooltip.appendChild(new Element('div', {className: 't'}));
			this.tooltipContent = new Element('div', {className: 'c'});
			this.tooltip.appendChild(this.tooltipContent);
			this.tooltip.appendChild(new Element('div', {className: 'f'}));
			document.body.appendChild(this.tooltip);
			this.tooltip.hide();
			Event.observe(this.tooltip, 'mouseout', this.hidetooltip.bindAsEventListener(this));
		},
		addListeners : function(){
			$A(this.ths).each(function(th){
				if(th.title){
					th._title = th.title;
					th.title = "";
				}
				Event.observe(th, 'mouseover', this.showtooltip.bindAsEventListener(this));
				Event.observe(th, 'mouseout', this.hidetooltip.bindAsEventListener(this));
			}.bind(this));
			this.tooltips.each(function(tooltip){
				Event.observe(tooltip, 'mouseover', this.showtooltip.bindAsEventListener(this));
				Event.observe(tooltip, 'mouseout', this.hidetooltip.bindAsEventListener(this));
			}.bind(this));



		},
		onmouseover : function(e){
			if(e.target._title){
				var content = e.target._title;
				//this.content.innerHTML = '<p>'+content+'</p>';
			}
		},
		onmouseout : function(e){
			this.content.innerHTML = this.defaultContent;
		},
		hidetooltip : function(e){
		  if(!e.relatedTarget) return;
      if(e.relatedTarget==e.currentTarget || e.relatedTarget.childOf(e.currentTarget)) return;


		  var _element = Event.findElement(e, '.tooltip');

  		var element = e.relatedTarget;
  		var help = element.up('.tooltip');

  		if((!help || _element) && this.visible){
	      this.tooltip.hide();
 		    this.visible = false;
  		}




			/*var element = Event.element(e);
			if(element.tagName.toLowerCase()=="th"){
				this.tooltip.hide();
				this.visible = false;
			}else{
				while(element.tagName.toLowerCase()!='div'){
					element = element.parentNode;
				}
				if(element.hasClassName('help')){
					this.tooltip.hide();
					this.visible = false;
				}
			}*/
		},
		showtooltip : function(e){
      if(e.relatedTarget==e.currentTarget || e.relatedTarget.childOf(e.currentTarget)) return;

			var content;
			if(!this.visible){
				this.visible = true;
				var element = Event.findElement(e, 'th');
				if(element){
					if(element._title){
						content = '<p>'+element._title+'</p>';
					}
				}else{
				    element = e.target;
					while(element.tagName.toLowerCase()!='div'){
						element = element.parentNode;
					}
					content = element.innerHTML;
				}

				/*if(element.tagName.toLowerCase()=="th"){
					if(element._title){
						content = '<p>'+element._title+'</p>';
					}
				}else{
					while(element.tagName.toLowerCase()!='div'){
						element = element.parentNode;
					}
					content = element.innerHTML;
				}*/


				if(content){
					var pos = Position.page(element);
					var scroll = document.viewport.getScrollOffsets();

					this.tooltipContent.innerHTML = content;

					if(element.tagName.toLowerCase()=="th"){
						var t = (scroll[1]+pos[1])-this.tooltip.getHeight();
						var l = pos[0];
					}else{
						var t = (scroll[1]+pos[1])-this.tooltip.getHeight()+10;
						var l = pos[0]-15;
					}

					this.tooltip.setStyle({
						top: t+'px',
						left: l+'px'
					});
					this.tooltip.show();
				}
			}
		}
	}
}();

App.HomeCharge = function(){
  var body, charge, overlay, popup, no, yes;

  function build(){
    overlay = new Element('div', {id: 'overlay', className: 'dark'}).hide();
    popup = $('home-charge-popup');
    charge = $('home-charge-charge');
    yes = $('home-charge-yes');
    no = $('home-charge-no');

    body.appendChild(overlay);
    body.appendChild(popup);
  }

  function registerEvents(){
    body.observe('click', onClick);
  }

  function onClick(e){
    var element;
    if(element = e.findElement('.select-loan')){
      e.stop();
      var url = element.href.split('/');
      var params = url[url.length-3]+'/'+url[url.length-2]+'/';

      charge.innerHTML = element.next('span.home-charge').innerHTML;
      yes.href = '/loan_applications/select/'+params+'1';
      no.href = '/loan_applications/select/'+params+'2';

      popup.show();
			var height = Client.height();
			var dimensions = popup.getDimensions();

			var t = (height/2)-(dimensions.height/2)+Client.scrollTop()+'px';
      popup.style.top = t;


      var h = Math.max(body.getHeight(), document.viewport.getHeight());
      overlay.setStyle({
				height: h+'px'
			}).show();

      //overlay.show();

    }
  }

  return {
    initialize : function(){
      body = $$('body').first();
      build();
      registerEvents();
    }
  }
}();

App.Tooltip = function(){
	return {
		initialize : function(element){
			this.element = $(element);
			this.addListeners();
			this.build();
		},
		build : function(){
			this.tooltip = new Element('div', {className: 'tooltip'});
			this.tooltip.appendChild(new Element('div', {className: 't'}));
			this.tooltipContent = new Element('div', {className: 'c'});
			this.tooltip.appendChild(this.tooltipContent);
			this.tooltip.appendChild(new Element('div', {className: 'f'}));
			document.body.appendChild(this.tooltip);
			this.tooltip.hide();
		},
		addListeners : function(){
			Event.observe(this.element, 'mousemove', this.showtooltip.bindAsEventListener(this));
			Event.observe(this.element, 'mouseout', this.hidetooltip.bindAsEventListener(this));
		},
		hidetooltip : function(e){
			/*var element = Event.element(e);
			while(!element.hasClassName('help')){
				element = element.parentNode;
			}
			if(element.hasClassName('help')){
				this.tooltip.hide();
				this.visible = false;
			}*/

      if(e.relatedTarget==e.currentTarget || e.relatedTarget.childOf(e.currentTarget)) return;
      var element = Event.element(e);
			while(!element.hasClassName('help')){
				element = element.parentNode;
			}


			if(element.hasClassName('help') && this.visible){
        this.tooltip.hide();
        this.visible = false;
      }

		},
		showtooltip : function(e){

      if(e.relatedTarget && (e.relatedTarget==e.currentTarget || e.relatedTarget.childOf(e.currentTarget))) return;

			if(!this.visible){
				this.visible = true;
				var element = Event.element(e);
				while(!element.hasClassName('help')){
					element = element.parentNode;
				}

				var pos = Position.page(element);
				var scroll = document.viewport.getScrollOffsets();

				this.tooltipContent.innerHTML = element.innerHTML;

				var t = (scroll[1]+pos[1])-this.tooltip.getHeight();
				var l = pos[0]-15;
				this.tooltip.setStyle({
					top: t+'px',
					left: l+'px'
				});
				this.tooltip.show();
			}
		}
	}
}();

App.QuoteToggle = function(){
	return {
		initialize : function(){
			this.element = $('quote-div');
			this.link = $('quote-toggle');
			this.addListeners();
			this.element.hide();
		},
		addListeners : function(){
			this.link.observe('click', this.toggle.bindAsEventListener(this));
		},
		toggle : function(e){
			if(this.visible){
				this.visible = false;
			}else{
				Event.stop(e);
				this.element.show();
				this.visible = true;
			}
		}
	}
}();

document.observe("contentloaded", function(){

	//document.execCommand("BackgroundImageCache", false, true);

	function hasClass(haystack, needle){
	    return (haystack.length > 0 && (haystack == needle || haystack.match(new RegExp("(^|\\s)" + needle + "(\\s|$)"))));
	}

	if(Client.browser=='Explorer' && Client.version<5){
	}else{
		$$('div.row').each(function(layoutBlock){
			if(layoutBlock.hasClassName('equal')||layoutBlock.hasClassName('double')){
				var containers = layoutBlock.getElementsByClassName('container');
				var modules1 = containers[0].getElementsByClassName('module');
				var modules2 = containers[1].getElementsByClassName('module');
				if(modules1.length==1 && modules2.length==1){
					var class1 = modules1[0].className;
					var class2 = modules2[0].className;
					//if((class1.indexOf('spotlight')!=-1 || class1.indexOf('faq')!=-1 || class1.indexOf('links')!=-1) && (class2.indexOf('spotlight')!=-1 || class2.indexOf('faq')!=-1 || class2.indexOf('links')!=-1)){
					if((hasClass(class1, 'spotlight')||hasClass(class1, 'faq')||hasClass(class1, 'links')) && (hasClass(class2, 'spotlight')||hasClass(class2, 'faq')||hasClass(class2, 'links'))){
						layoutBlock.addClassName('vertical');
						modules1[0].addClassName('vert');
						modules2[0].addClassName('vert');
					}
				}
			}
		});


		/*$$('div.double').each(function(layoutBlock){
			var containers = layoutBlock.getElementsByClassName('container');
			var con1 = containers[0].getElementsByClassName('spotlight');
			var con2 = containers[1].getElementsByClassName('spotlight');
			if(con1.length==1 && con2.length==1){
				layoutBlock.addClassName('vertical');
				con1[0].addClassName('vert');
				con2[0].addClassName('vert');
			}
		});
		$$('div.equal').each(function(layoutBlock){
			var containers = layoutBlock.getElementsByClassName('container');
			if(containers[0].getElementsByClassName('spotlight').length==1 && containers[1].getElementsByClassName('spotlight').length==1){
				layoutBlock.addClassName('vertical');
				con1[0].addClassName('vert');
				con2[0].addClassName('vert');
			}
		});*/
	}

	App.ReplaceImages.initialize();
	if($('customer_number_help')){
		App.Tooltip.initialize('customer_number_help');
	}

	//Preload some images...
	$A(['/img/site/layout/loan/tooltip_t.png','/img/site/layout/loan/tooltip_f.png']).each(function(image){
		var img = new Image();
		img.src = image;
	});

	if($('quotetable')){
		App.QuoteToggle.initialize();
	}

	var events = $A([Event.KEY_BACKSPACE, Event.KEY_TAB, Event.KEY_DELETE, Event.KEY_LEFT, Event.KEY_UP, Event.KEY_RIGHT, Event.KEY_DOWN, 16]);
	var postcode_fields = $$('input.single-digit');
	postcode_fields.each(function(field, i){
	  field.observe('keyup', function(e){
	    var val = field.value.blank();
	    if(!events.include(e.keyCode)){
  	    if(val){
	        if(e.keyCode == Event.KEY_BACKSPACE){
      	    if(i>0){
        	    var _field = postcode_fields[i-1];
      	      _field.focus();
      	      _field.select();
      	    }
	        }
	      }else{
  	      if(i<postcode_fields.length-1){
    	      var _field = postcode_fields[i+1];
    	      _field.focus();
      	    _field.select();
    	    }
  	    }
  	  }
	  });
	  field.observe('focus', function(e){
	    field.select();
	  });
	});

	var bad_ids = $A(['quote-toggle']);
	$$('input[type="submit"]').each(function(input){
	  if(!bad_ids.include(input.id)){
  	  input.observe('click', function(e){
  	    if(this.form.action){
          this.form.submit();
	        this.disable();
	      }
  	  });
  	}
	});

});

App.DropdownPair = Class.create({
  initialize : function(element1, element2){
    this._cache = {};
    this.element1 = $(element1);
    this.element2 = $(element2);

    this.elements = $H({});
    this.elements[this.element1.identify()] = this.element1;
    this.elements[this.element2.identify()] = this.element2;

    this.add_listeners();
  },
  add_listeners : function(){
    this.elements.each(function(element){
      element.value.observe('change', this.on_change.bindAsEventListener(this));
      element.value.observe('focus', this.on_focus.bindAsEventListener(this));
    }, this);
  },
  on_focus : function(e){
    this.cache(e.element().identify());
  },
  cache : function(property){
    this._cache[property] = this.elements[property].selectedIndex;
  },
  on_change : function(e){
    var element = e.element();
    var selected = element.selectedIndex;
    var _element = this.elements.reject(function(el){
      return el.value.identify() == element.identify();
    }).first().value;

    if(element.options[element.selectedIndex].disabled){
      element.selectedIndex = this._cache[element.identify()];
    }else{
      $A(_element.options).each(function(option, i){
        if(i == selected && selected != 0){
          Element.writeAttribute(option, 'disabled', 'disabled');
          Element.setStyle(option, {
            color: 'graytext'
          });
        }else{
          Element.writeAttribute(option, 'disabled', false);
          Element.setStyle(option, {
            color: 'menutext'
          });
        }
      });
    }
  }
});


function trackDownload(obj, name) {
  return true;
}

// Video tracking

function loadMedia(mediaName, mediaLength, mediaPlayerName){
  if(s){
    s.Media.open(mediaName, mediaLength, mediaPlayerName);
    s.Media.play(mediaName, 0);
  }
}

function pauseMedia(mediaName, mediaOffset){
  if(s){
    s.Media.stop(mediaName, parseInt(mediaOffset, 10));
  }
}

function resumeMedia(mediaName, mediaOffset){
  if(s){
    s.Media.play(mediaName, parseInt(mediaOffset, 10));
  }  
}

function endMedia(mediaName, mediaOffset){
  if(s){
    s.Media.stop(mediaName, parseInt(mediaOffset, 10));
    s.Media.close(mediaName);
  }
}

function trackApplication(){
  if(window.ClickTaleTag){
    ClickTaleTag('Loan Application Submitted');
  }
}


Event.observe(window, 'load', function(){

	App.Lightbox.initialize();
	  
  var new_customer = $('customer_status_Novýzákazník');
  var existing_customer =$('customer_status_Stávajícízákazník');
  var pinField = $('LoanApplicationPin');
  if(new_customer && existing_customer && pinField){
    var pinDiv = pinField.up('div.text');
    if(new_customer && existing_customer){
      function togglePin(){
        if(new_customer.checked){
          pinField.disable();
          pinDiv.addClassName('disabled');
        }else{
          pinField.enable();
          pinDiv.removeClassName('disabled');
        }
      }
    
      new_customer.observe('click', togglePin);
      existing_customer.observe('click', togglePin);
      togglePin();
    }
  }


  if(s){
    
    // $$('a[href^="/downloads"]').each(function(link){
    //   if(!link.onclick){
    //     link.onclick=function(e){
    //       trackDownload(this, this.innerHTML);
    //     }
    //   }
    // });
    
    var EMAILS = {
      'plPL' : 'bok@provident.pl',
      'esMX' : 'servicioalcliente@provident.com.mx',
      'huHU' : 'provident@provident.hu',
      'roRO' : 'relatiicuclientii@provident.ro',
      'csCZ' : 'zakaznicky.servis@provident.cz',
      'skSK' : 'slovakiacustomerservices@provident.sk'
    };
    
    $$('#content a[href=mailto:'+EMAILS[LOCALE]+']').each(function(link){
      link.onclick = function(e){
        var s=s_gi(s_account); 
        s.linkTrackVars='eVar2,events'; 
        s.linkTrackEvents='event3'; 
        s.events='event3'; 
        s.eVar2='Contact us'; 
        s.tl(this,'o','Contact Us');
      }
    });
  }

	$$('div.promo a').each(function(module){
		var arrow = document.createElement('span');
		arrow.className='arrow';
		module.insertBefore(arrow, module.firstChild);
	});

   	$$('#content form.video_changer').each(function(form){
   		form.observe('submit', function(e){
    		Event.stop(e);
    		var video_id = form.id.split('_')[2];
    		var select = $('video_select_'+video_id);
    		var selected = select.options[select.selectedIndex];    		
    		App.VideoPlayer.update('video_'+video_id, '/files/site/resources/'+selected.value+'.flv', selected.innerHTML);
    	});
    });

	if($('quotetable')){
		App.LoanHelp.initialize('quotetable');
		if($('home-charge-popup')){
		  App.HomeCharge.initialize();
		}
	}

	if($('print')){
		Event.observe($('print_button'), 'click', function(e){
			Event.stop(e);
			window.print();
		});
	}

	if($('print2')){
		Event.observe($('print_button2'), 'click', function(e){
			Event.stop(e);
			window.print();
		});
	}

	if($('footer_print_button')){
		Event.observe($('footer_print_button'), 'click', function(e){
			Event.stop(e);
			window.print();
		});
	}

  if($('UserQuestion1') && $('UserQuestion2')){
    new App.DropdownPair('UserQuestion1', 'UserQuestion2');
  }






});