
/*
 * Script for Goldsboro News-Argus CarFinder
 * Note: Requires jQuery library
 *
 * Purpose: Improve user experience by speeding up processes
 *
 * By Alexis Deveria
 * Created on: March, 2007
 * Last revision: Dec 27, 2007
 *
 */

//Set hidden/displayed styles
document.write('<style type="text/css">#searchwrap div#advcontent, #searchwrap fieldset#emailcontent, #asearch #search, .nonjs {display:none;} #optiontabs, #showsearch { display:block; }</style>');

var gnaCarFinder = function() {

	//Private Methods:
	function showSearch() {
		$("#showsearch").css('display','none');
		$("#search").css('display','block');
	}
	
	function showBasic() {
		$("#baslink").parent().addClass('otcur');
		$("#advlink").parent().removeClass('otcur');
		$("#bascontent .multi select").removeAttr('multiple').attr('size','1');
		$("#bascontent").removeClass('adv');
		$("#bascontent ul li.multi").css('height','3.5em');
		$("#advcontent, #bascontent p").css('display','none');
		return false;
	}
	
	function showAdvanced() {
		$("#advlink").parent().addClass('otcur');
		$("#baslink").parent().removeClass('otcur');
		$("#bascontent").addClass('adv');
		$("#bascontent .multi select").attr('multiple', 'multiple').attr('size','6');
		$("#bascontent ul li.multi").css('height','');
		$("#advcontent,#bascontent p").css('display','block');
		return false;
	}
	
	function showModel(origval) {
	
		var make = $("select[name='make[]']");
		var model = $("#model\\[\\]");
		var any = '<option value="">Any</option>';
	
		model.empty().append(any);
		
		if (make.val() != "") {
			//Show data based on make
			make.find("option:selected").each(function () {
				var makesval = $(this).val();
	
				var mkPos = $.inArray(makesval,Makesindb);
				for (var i=0, d;d = Modelsindb[mkPos][i];i++) {
					opt = document.createElement('option')
					if(d.indexOf('|') != -1) {
						t = d.split('|')[1];
						d = d.split('|')[0];
					} else {
						t = 1;
					}
					
					opt.value = d;
					opt.appendChild(document.createTextNode(d+' ('+t+')'));
					document.search["model[]"].appendChild(opt); 
				}
				
				model.val(origval?modelarr:'');
	
			});
		} else {
			var m=document.search["model[]"];
			var allmodels=[];
	
			for (var i=0, d;d = Modelsindb[i];i++) {
				for (var j=0, e;e = d[j];j++) {
					allmodels.push(e);
				}
			}
			allmodels.sort();
			for (var i=0, d;d = allmodels[i];i++) {
				opt = document.createElement('option');
				if(d.indexOf('|') != -1) {
					t = d.split('|')[1];
					d = d.split('|')[0];
				} else {
					t = 1;
				}
				opt.value = d;
				opt.appendChild(document.createTextNode(d+' ('+t+')'));
				m.appendChild(opt); 
			}
			
			model.val(origval?modelarr:'');
		}
	}
	
	function editSaved(n) {
		
		
		if(!$.cookie('faves')) {
			var cPos = -1;
			var cArray = [];
		} else {
			var cArray = $.cookie('faves').split('|');
			var cPos = $.inArray(n,cArray);
		}
		
		var saved = (cPos == -1)?false:true;
		
		
		if(!saved) {
			cArray.push(n);
		} else {
			
			cArray = $.grep(cArray, function(n, i){
				return (i != cPos);
			});
		}


		$.cookie('faves',cArray.join('|'),{expires: 60});
		

		
		return !saved;
	}
	
	/* Calculate Payment */
	function showpay() {
		var c = document.calc;
		
		if ((c.vprice.value == null || c.vprice.value.length == 0) ||
			(c.term.value == null || c.term.value.length == 0) ||
			(c.intrate.value == null || c.intrate.value.length == 0)) { 
			c.pay.value = "Incomplete data";
		 } else {
			var vprice = c.vprice.value.replace(/\,/g,'');
			var princ = vprice - c.payment.value - c.tradein.value;
			var salestax = c.salestax.value;
			princ = vprice * (salestax/100) + princ;
			var intr   = c.intrate.value / 1200;
			var term  = c.term.value;
	
			var rawvalue = princ * intr / (1 - (Math.pow(1/(1 + intr), term)));
			c.pay.value = addCommas(Math.round(rawvalue*100)/100);
			c.vprice.value = addCommas(c.vprice.value);
		}
		return false;
	
	// payment = principle * monthly interest/(1 - (1/(1+MonthlyInterest)*Months))
	
	}
	
	return {
		//Public Methods:
		
		init:function() {
		
			// For Search Box:
			if ( $('#bascontent').length ) {
		
				$(".nonjs").remove();
				
				//Remove display:block bit later
				var searchon = '<span id="showsearch" style="display:block"><a href="#">Show search options</a></span>';
				$("#criteria").append(searchon);
				$("#showsearch a").click(function() {
					showSearch();
					return false;
				});
				
				//Fix for Safari 1.x
				$("#advlink").attr('href','#advlink');
				$("#baslink").attr('href','#baslink');
			
				//Show option tabs
				$("#optiontabs").css('display','block');
				$("#advlink").click(showAdvanced);
				$("#baslink").click(showBasic);
			
				//Set model		
				var multisize = '6';
			
				$("select[name='make[]']").change(function() {
					showModel();
				});
				
				var origval = $("input[name='model[]']").val();
				modelarr = origval.split(', ');
				
				var moddiv = $("input[name='model[]']").parent();
				$("input[name='model[]']").remove();
				
				var sel = '<select name="model[]" id="model[]" multiple="multiple" size="' + multisize + '"></select>';
				moddiv.append(sel);
				showBasic();
		
				showModel(modelarr);
			
				//Open advanced search if needed
				var showadv = false;
				
				//Advanced Search page
				var url = document.location+'';
				if (url.indexOf('task=advsearch') != -1) {
					$("#optiontabs").css('display','none');
					$("#search").css('display','block');
					showadv = true;
				} else {
					//For other pages
					
					//Check all advanced fields
					$("#advcontent :text").each(function () {
						if ($(this).val() != "") { showadv = true; }
					});
					$("#advcontent select").each(function () {
						if(this.selectedIndex != 0) { showadv = true; }
					});
					$("#advcontent :checkbox").each(function () {
						if(this.checked) { showadv = true; }
					});		
				}
				
				if(showadv) { showAdvanced(); }
				
				if ($("#noresults").length) { showSearch();	}
			}
			
			//For Search Results
			if ($("#search-results").length) {
				$(document.proclistings).submit(function() {
					var ch = $("#search-results :checkbox:checked").length;
					if (ch <= 1) {
						alert('Please select more than one listings to compare');
						return false;
					} else if (ch > 4) {
						alert('Please select less than four listings to compare');
						return false;
					}
				});
				
		
				
				$("#search-results tr").each(function(i) {
					
					var id = $(this).find(".options :checkbox").val();
					
					//Has saved image, so is saved
					var saved = $(this).find(".details1 img.saved").length?true:false;
					
					var imgLoc = ".details1 strong:eq(0)";
					var sImg = '<img src="images/star.gif" class="saved" alt="" title="This listing has been saved" />';
					
					$(this).find(".details2").append(
						'<input type="button" value="' + (saved?'Un-Save':'Save') + '" />'
					).find(":button").click(function() {
					
						//Changes cookie
						
						saved = editSaved(id);
						
		
						$("#search-results .details2 a").remove();
		
						if(saved) {
							this.value = 'Un-Save';
							$(this).parents("tr").find(imgLoc).before(sImg);
							$(this).after('<a href="index.php?task=viewsaved">Show all saved listings</a>');
						} else {
							
							this.value = 'Save';
							$(this).parents("tr").find(".details1 img.saved").remove();
						}
					});
				});
			}
			
			
			//For Listing
			if ($("#view").length) {
			
				//For main photo
				$("#mainphoto a").click(function() {
					// alert('hey');
					var file = $(this).attr('href');
				
					// Get height of area to center vertically
					var imgheight = 480;
					
					var de = document.documentElement; 
					var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
					h = (h/2)-(imgheight/2);
		
					var d = '<div class="bigphoto" title="Click to close image"><img style="margin-top:'+h+'px" src="' + file + '" /></div>';
					$(document.body).append(d);
					$("div.bigphoto").click(function() { $(this).remove(); } );
			
					return false;
				});
				
				//For thumbnails
				$("#thumbnails a").click(function() {
					var img = $(this).find("img");
					var fname = img.attr('src').replace('/thb/','/std/');
		
					$("#phototitle").text(img.attr("alt")?img.attr("alt"):'');
					$("#photodesc").text(img.attr("longdesc")?img.attr("longdesc"):'');
					
					$("#mainphoto img").attr('src',fname);
					$("#mainphoto a").attr('href',fname.replace('/std/','/ori/'));
		
					return false;
				});
				
				var url = $("#savelink").attr('href');
				//Do for save button
				$("#savelink").attr('href','#').click( function() {
				
					var id = url.substr(url.lastIndexOf('=')+1);
					var saved = editSaved(id);
					
					var cont = $(this).html();
					
					if(!saved) {
						$(this).html(cont.replace(/Remove/g,'Save'));
					} else {
						$(this).html(cont.replace(/Save/g,'Remove'));
					}
					return false;
				});
			}
			
			
			//For Calculator
			if ($("#estimatecalc").length) {
				//Change submit effect of form
				$(document.calc).submit(showpay);
				
				$("#estimatecalc :input").change(function() {
					var p = $("#estimatecalc input[name='pay']").val();
					if (p != null && p.length != 0) { showpay(); }
				});
			}

		}
	}

}();

$(document).ready(gnaCarFinder.init);

function addCommas(a){a+='';x=a.split('.');x1=x[0];x2=x.length>1?'.'+x[1]:'';var b=/(\d+)(\d{3})/;while(b.test(x1)){x1=x1.replace(b,'$1'+','+'$2')}return x1+x2}

jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';options.expires=-1}var expires='';if(options.expires&&(typeof options.expires=='number'||options.expires.toUTCString)){var date;if(typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000))}else{date=options.expires}expires='; expires='+date.toUTCString()}var path=options.path?'; path='+options.path:'';var domain=options.domain?'; domain='+options.domain:'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('')}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break}}}return cookieValue}};


var Modelsindb=[
['|5','MDX|2','RDX'],['Mt712'],['3 Series|3','328','740'],['Enclave|7','Lacrosse|4','Lesabre|4','Lucerne|7','Park Avenue|2','Park Avenue Ultra','Rendezvous|2'],['6dp69','6eb26','CTS|15','Deville|4','DTS|9','Escalade|7','Escalade ESV','Escalade EXT','SRX|6','STS|6','XLR|2','Xlr-v'],['Gasehw610sa'],['|2'],['1wc19','1wt19','Avalanche|5','Camaro|3','Ck15706','Ck25953','Cobalt|4','Cobalt LT','Colorado|2','Corvette|3','Equinox|5','Express Cargo|3','HHR|5','Impala|5','Malibu|9','Monte Carlo','Silverado 1500|16','Silverado 1500 Classic','Silverado 1500 Z71','Silverado 2500hd|2','Silverado 3500 Classic','Silverado LS','Suburban|3','Tahoe|12','Tahoe Limited/z71','Tracker','Trailblazer|8','Traverse','Uplander|4','Venture'],['300|4','300 C','300c','Aspen','Crossfire','Grand Voyager','Lxcs48','Pacifica|5','Pacifica Touring','PT Cruiser|2','Sebring|5','Town AND Country|12'],['','An5m31','Avenger','B1500 RAM VAN','Caliber','Challenger|2','Charger|7','Dakota|9','Durango|9','Grand Caravan|6','Journey|3','Jsdp41','Nd5p33','Nitro|5','RAM Pickup 1500|15','RAM Pickup 2500','RAM Pickup 3500','Rskh53'],['Econoline Cargo','Edge|5','Escape|2','Escort','Expedition|3','Expedition Eddie Bauer','Explorer|7','Explorer Sport','Explorer Sport Trac|2','F-150|10','F-450','F-450 Super Duty','Focus','Freestar','Fusion|3','K03','K06','K39','Mustang|5','P34','P35','P52','Ranger|3','Ranger XL','Taurus|3','Taurus X','Thunderbird','U63','W12'],['Cargo Mate|4','Gaehw612sa','Gaehw612ta2','Gatw58sa','Gavhw612sa|2'],['Acadia|10','Canyon|2','Envoy|3','Envoy SLT','Jimmy','Sierra 1500|10','Sierra 1500 Classic','Sierra 2500hd','Tk10706','Tk10906','Tk15706','Yukon|7','Yukon XL|2','Yukon XL 1500|2'],['','Accord|3','Accord EX','Civic|3','Cr-v|2','Em2195mw','Em2295mw|2','Fg1289jw','Pilot|2'],['H3|7','Rn15306'],['','Accent','Elantra','Santa FE|3','Sonata|4','Tiburon','Tucson'],['G35','I30','Qx56|2'],['J54'],['S-type','Xj-series|2'],['Commander|2','Grand Cherokee|6','Liberty|3','Liberty Limited','Tjjh78','Wjjl74','Wrangler|4','Xkth74'],['','94242','Optima','Sorento','Sportage|2'],['IS 250|3','IS 300','RX 350'],['LS|4','M82','MKZ|2','Navigator|2','Town CAR|4'],['Cx7isp2a','Cx7isv2a|2'],['|7','B-series Pickup','Cx-7','Cx7gt2a','Cx7isp2a|7','Cx7isv2a|3','Cx7sgt2a','Cx7sp2a|3','Cx9gt2a|7','Cx9tr2a|3','LX','M3hsa|2','M3hsp','M3sia|2','M3sip','M3sitra|16','M3sitva|5','M3sitvp','M3sritva','M3ssa','Mazda3|2','Mazda6|3','Miala','Ms3sspp|2','Mx-5 Miata','Mx5gt6p|3','Mx5spp','Mxrspp','Mz5tra','Mz6igta|2','Mz6ispa|2','Mz6itpa|9','Mz6itra|6','Protege','Rx8hp6p|2','Rx8spa','Trbitr2a','Trbssp2a'],['C-class|2','E Class E320','Gl-class','Slk-class'],['Grand Marquis','Mariner|3','Mountaineer','Sable','Villager'],['Cooper S'],['Ec24','Ec24k','Eclipse','Eclipse Spyder','Galant','Montero Sport|2'],['|2','08215','52467','Altima|6','Altima SL','Armada|2','Frontier|4','Maxima|3','Murano','Pathfinder','Quest','Rogue','Sentra|5','Titan','Versa','Xterra|2','Xterra SE; XE'],['Nshh53'],['2sl26','G3','G6|5','G8|2','Grand AM SE','Grand Prix|2','Montana','Solstice|2','Torrent','Vibe'],['VUE|2'],['TC','XB'],['XL7'],['|4','2532|3','2546','4430','4runner|3','7113','7744','7910','8676','Camry|3','Camry Solara|2','Corolla|3','Highlander|2','Rav4','Sienna','Tacoma|4','Tundra|3'],['|13','1c15k3','1c15r4','1c15ra|7','1c16ra','1c17n6','1c17t4','1f79w3','1k25s3','1k27n3|2','1k27s3|10','1k27z3','1k29s3|2','1y75ha','1y75ra|3','1y7sra|2','1y7tra','3572l6|3','3572u6','3574l6|2','3c25l6|5','3c55l6','5n18v1','5n1lv1','7b11b3','7b13b3|3','7b14b3','7b15c3','7b16c3','7l60y3','9m26n8','GTI','Jetta|3','Jetta TDI','NEW Beetle|2'],['S60'],['1k22s3|4','1k239m|3','1k23s3|2','1k23w3','3572ld']
];
Makesindb = ['Acura','Anderson','BMW','Buick','Cadillac','Cargo Mate','Chev','Chevrolet','Chrysler','Dodge','Ford','Forest River','GMC','Honda','Hummer','Hyundai','Infiniti','Isuzu','Jaguar','Jeep','Kia','Lexus','Lincoln','Mazd','Mazda','Mercedes-benz','Mercury','Mini','Mitsubishi','Nissan','Plymouth','Pontiac','Saturn','Scion','Suzuki','Toyota','Volkswagen','Volvo','Vw'];