var initialCompareCookieValue="*0*0*0*0*0*";
var alerts = {
	selectMakeModelToCompare: function(){
		if (getCookie("locale") == "ar" || getCookie("locale") == ""){
			return "من فضلك اختر الماركة و الموديل و الفئة/السنة لكي تقارن";
		}else{
			return "Please select a Make, a Model and a Trim/Year from the above dropdown lists to compare with";
		}
	},
	
	cantCompareWithSameCar: function(){
		if (getCookie("locale") == "ar" || getCookie("locale") == ""){
			return "لا يمكنك إجراء مقارنة مع نفس السيارة";
		}else{
			return "You can't compare with the same car profile";
		}
	},
	
	facebookSessioExpired: function(){
		if (getCookie("locale") == "ar" || getCookie("locale") == ""){
			return "لقد انتهت فترة دخول فيس بوك الخاصة بك. من فضلك سجل دخولك مرة أخرى";
		}else{
			return "Your Facebook session has expired. please login again";
		}
	},
	
	mustEnterComment: function(){
		
		if (getCookie("locale") == "ar" || getCookie("locale") == ""){
			return "يجب أن تدخل العنوان و التعليق";
		}else{
			return "Your must enter a title and a comment";
		}
	},
	
	confirmDeletePhoto: function(){
		if (getCookie("locale") == "ar" || getCookie("locale") == ""){
			return "هل أنت متأكد من حذف هذه الصورة؟";
		}else{
			return "Are you sure you want to delete the photo?";
		}
	},
	
	confirmDeleteAd: function(){
		if (getCookie("locale") == "ar" || getCookie("locale") == ""){
			return "هل أنت متأكد من حذف هذا الإعلان؟";
		}else{
			return "Are you sure you want to delete this ad?";
		}
	},
	
	confirmDeleteCar: function(){
		if (getCookie("locale") == "ar" || getCookie("locale") == ""){
			return "هل أنت متأكد من حذف هذه السيارة؟";
		}else{
			return "Are you sure you want to delete this car?";
		}
	},
	
	confirmDeleteFavorite: function(){
		if (getCookie("locale") == "ar" || getCookie("locale") == ""){
			return "هل أنت متأكد من حذف هذه المفضلة؟";
		}else{
			return "Are you sure you want to delete this favorite?";
		}
	},
	
	serviceApplied: function(){
		if (getCookie("locale") == "ar" || getCookie("locale") == ""){
			return "تم تطبيق الخدمة";
		}else{
			return 'Service has been just applied';
		}
	}
}


var AccountSettings = {
	
	submitForm: function(form_input){
		var form = $(form_input + '_form');
		new Ajax.Request(form.action, {
			method: 'put',
			parameters: Form.serialize(form),
			onLoading: function(response){
				$(form_input + '_spinner').show();
				$(form_input + '_save_link').hide();
				$(form_input + '_cancel_link').hide();
			},
			onComplete: function(response){
				$(form_input + '_spinner').hide();
				$(form_input + '_save_link').show();
				$(form_input + '_cancel_link').show();
				if ( $(form_input + '_edit_field').visible() ){
					$(form_input + '_edit_field').activate();
				}
			}
		});
	}, 

	resetForms: function(){
		$('errors_header').hide();
		$$('.error-note').each(function(e){e.remove();})
		$$('.input-error').each(function(e){e.removeClassName('input-error');})
		$('username_edit_field').value = $('username_view_field').value;
		$('password_edit_field').value = '';
		$('password_confirmation_edit_field').value = '';
	}// end resetForms

}// end AccountSettings


var CarCompare = {
	
	cars: new Hash(),
	
	getCookieName: function(compareType){
		return (compareType == "car_profile") ? "carsToCompare" : "adsToCompare";
	},
	insertIntoCart: function(compareType,carID,userID){
		if(String(getCookie(CarCompare.getCookieName(type))) == initialCompareCookieValue)
			$('compare_cart').style.display = 'block';
		var compareWapperDiv = $('compare_cart_wrapper');
		var finderCarDiv = document.createElement("div");
		finderCarDiv.className = 'finder-car';
		finderCarDiv.setAttribute('id','finder-car-'+carID);   //for deletion purposes

		var imgWrapperSpan = document.createElement("span");
		imgWrapperSpan.className = 'img-wrapper cars';
		imgWrapperSpan.setAttribute('id','img-wrapper-'+carID);  //for deletion purposes
		
		var anchor = document.createElement("a");
		anchor.href = (compareType == 'car_profile') ? "/"+compareType + "s/"+ carID : "/users/"+userID+"/ads/"+carID;
		anchor.setAttribute('id','anchor-'+carID); //for deletion purposes
		
		
		var imgWrapper = document.createElement("img");
		imgWrapper.setAttribute('id','img-'+carID); //for deletion purposes
		var car_id = "car_img_" + carID;
		var car = $(car_id);
		if(car)
			imgWrapper.src = car.src;
		else
			imgWrapper.src ="/images/common/default-car-small.gif";
		
		anchor.appendChild(imgWrapper);
		imgWrapperSpan.appendChild(anchor);
		finderCarDiv.appendChild(imgWrapperSpan);
		compareWapperDiv.appendChild(finderCarDiv);
		
		var removeAnchor = document.createElement("a");
		removeAnchor.className= "remove-car";
		removeAnchor.onclick = function(){removeCar(carID,compareType,'true')};
	
		
		var removeImg = document.createElement("img");
		removeImg.src= "/images/common/delete-car.png";
		removeImg.setAttribute('id','remove-car-'+carID); //for deletion purposes
		removeAnchor.appendChild(removeImg);
		finderCarDiv.appendChild(removeAnchor);
		
		//manage selection
		var id = "chk_compare_"+ carID;
		var chk = document.getElementById(id);
		if(chk)
			chk.checked = true;
		
	},
	
	select: function(carID,type,userID,msg){
		initCompareCookies();
		
		var check_box = $('chk_compare_' + carID);
		if ( carFound(carID,type) == true ){
			alreadyInCompare(getCookie(this.getCookieName(type)),carID,type);
			removeCar(carID,type,'true');
		}else{
			cookieStr = getCookie(this.getCookieName(type));
			if(cookieStr.indexOf(emptySlotHolder) == -1 && check_box.checked == true) // all compare cars slot are taken
			{
				alert(msg);
				check_box.checked = false;
			}
			else
			{
				this.insertIntoCart(type,carID,userID);
				concatCompareString(cookieStr,carID,type);	
			}
		}		
	},
	
	toggle: function(){
		$$('.car-finder-compare input').each( function(item){ if (!item.checked) item.disabled = !item.disabled; } )
	},
	
	clearChecking: function(){
		$$('.car-finder-compare input').each( function(item){ item.enable(); item.checked = false; } )
	},
	
	submitCompare: function(compareType){
		var chosenCars = getCompareArray(getCookie(this.getCookieName(compareType))); 
		var url = "/compare/type/"+ compareType + "/"
		var numOfCars = 0;
		
		for (var i=0; i<5; i++){
			if (chosenCars[i]==null || chosenCars[i]=='')
				chosenCars[i] = '0';
		}
		url = url + chosenCars.join("/and/");
		window.location = url;	
	},
	
	compare: function(id1, id2, compareType, comparURL){
		
		if ( !parseInt(id2) || !parseInt(id1) ) return 'wrong-selction';
		if ( id1 == id2 ) return 'same-car';
		//this.cars.set(id1, true);
		//this.cars.set(id2, true);
		this.submitCompare(compareType, comparURL);
		return true;		
	},
	
	respondTo: function(status){
		var msg = '';
		switch (status){
			case 'wrong-selction':
				msg = alerts.selectMakeModelToCompare();
				alert(msg);
				break;
			case 'same-car':
				msg = alerts.cantCompareWithSameCar();
				alert(msg);
				break;
		}//end switch
	},
	
	startPhotoGallery: function(photosHolder, photoId){
		$$('.hidden_photo').each(function(p){p.style.display = 'none';});
		$(photoId).style.display = 'block';
		new Lightbox.base(photosHolder);
	}
}//end CarCompare

var Checks = {	
	submitForm: function(form_input){
		var form = $(form_input + '_form');
		new Ajax.Request(form.action, {
			method: 'post',
			parameters: Form.serialize(form),
			onLoading: function(response){
				$(form_input + '_spinner').show();
				$(form_input + '_save_link').hide();
				$(form_input + '_cancel_link').hide();
			},
			onComplete: function(response){
				$(form_input + '_spinner').hide();
				$(form_input + '_save_link').show();
				$(form_input + '_cancel_link').show();
				if ( $(form_input + '_edit_field') && $(form_input + '_edit_field').visible() ){
					$(form_input + '_edit_field').activate();
				}
			}
		});
	},
	
	showUpdateMileage: function(carId){
		$$('#update_mileage_' + carId + '_container .error-note').each(function(e){e.remove();});
		$$('#update_mileage_' + carId + '_container .input-error').each(function(e){e.removeClassName('input-error');});		
		new Lightbox.base('update_mileage_'  + carId + '_container', {closeOnOverlayClick:true, externalControl:'update_mileage_' + carId + '_cancel_link'} );
	},
	
	clearLightboxContainer: function(boxId){
		$(boxId + '_container').innerHTML = '';
	},
	
	showUpdateService: function(serviceId, carId){
		if (serviceId == 'new'){
			var containerId = 'update_service__container';
			this.showServiceSpinnerFor('');
		}else{
			var containerId = 'update_service_' + serviceId + '_container';
			this.showServiceSpinnerFor(serviceId);
		}		
		new Ajax.Request('/services/' + serviceId + '/show_update_service', { method: 'get', parameters: {'car_id': carId} });
	},
	
	showEditService: function(serviceId){
		this.showServiceSpinnerFor(serviceId);
		new Ajax.Request('/services/' + serviceId + '/show_edit_service', {method: 'get'});
	},

	showGenericSpinnerFor: function(container){
		var spinner = $$('.generic-spinner').first().cloneNode(true);
		container = $(container);  
		container.insert( {top:spinner} );
		spinner.show();
		
		new Lightbox.base(container, {showCloseIcon:false});
	},
	
	showServiceSpinnerFor: function(serviceId){
		var spinner = $$('.service-block-spinner').first().cloneNode(true);
		var wrapper = $('service_' + serviceId + '_wrapper');
		wrapper.insert( {bottom:spinner} );
		spinner.show();
	},
	
	UpdateDueServices: function(userId){
		new Ajax.Updater('due_services_wrapper', '/users/' + userId + '/cars/due_services', {
			method: 'get',
			onLoading: function(response){
				$('due_services_spinner').show();
				$('due_services_wrapper').hide();
			},
			onComplete: function(response){
				$('due_services_spinner').hide();
				$('due_services_wrapper').appear({ duration: 1.0 });
			}
		});
	},

	UpdateServiceBlock: function(serviceId){
		var wrapper = $('service_' + serviceId + '_wrapper');
		var spinner = $$('.service-block-spinner').first().cloneNode(true);
		new Ajax.Request('/services/' + serviceId + '/update_service_block', {
			method: 'get',
			onLoading: function(response){
				wrapper.insert( {bottom:spinner} );
				spinner.show();
			}
		});
	}
}// end Checks
