$(document).ready(function(){
	
/*********************************** DEBUT DU TRAITEMENT XML (AUTHENTIFICATION) ***********************************/
	function xmlAuthRequest(userid, password, languagecode, usertimezone, serviceaccount, serialnumber){
		
		$.post('php/xmlrequest.php',{
			userid: userid,
			password: password,
			languagecode: languagecode,
			usertimezone: usertimezone,
			serviceaccount: serviceaccount,
			action: 'xmlAuthRequest',
			},function(data){
				
				parser = new DOMParser();
				xmldoc = parser.parseFromString(data,"text/xml");
				
				try{
					usersessionid = xmldoc.getElementsByTagName("userSessionId")[0].childNodes[0].nodeValue;
					xmlWarrantyRequest(serialNumber);
				}
				catch(ex){
					$('#searchinputresult').addClass('searchgifcancel', 0);
				}
		});
	}
	
/*********************************** FIN DU TRAITEMENT XML (AUTHENTIFICATION) ***********************************/
	
/*********************************** DEBUT DU TRAITEMENT XML (STATUS WARRANTY)***********************************/
	function xmlWarrantyRequest(serialnumber){
		
		
		
		$.post('php/xmlrequest.php',{
			serialnumber: serialnumber,
			userid: usersessionid,
			action: 'xmlWarrantyRequest',
			},function(data){
				
				parser = new DOMParser();
				xmldoc = parser.parseFromString(data,"text/xml");
				
				try{
					productdescription = xmldoc.getElementsByTagName("productDescription")[0].childNodes[0].nodeValue;
					serialnumber = xmldoc.getElementsByTagName("serialNumber")[0].childNodes[0].nodeValue;
					try{
						estimatedpurchasedate = xmldoc.getElementsByTagName("estimatedPurchaseDate")[0].childNodes[0].nodeValue;
					}
					catch(ex){
						estimatedpurchasedate = 'Inconnue';
					}
					warrantystatus = xmldoc.getElementsByTagName("warrantyStatus")[0].childNodes[0].nodeValue;
					imageurl = xmldoc.getElementsByTagName("imageURL")[0].childNodes[0].nodeValue;
					daysremaining = xmldoc.getElementsByTagName("daysRemaining")[0].childNodes[0].nodeValue;
					try{
						contracttype = xmldoc.getElementsByTagName("contractType")[0].childNodes[0].nodeValue;
						switch(contracttype){
							case 'CC':
								contracttype = 'Custom Bid Contracts';
								break;
							case 'CS':
								contracttype = 'Customer Satisfaction';
								break;
							case 'DO':
								contracttype = 'DOA Coverage';
								break;
							case 'LI':
								contracttype = 'Apple Limited Warranty';
								break;
							case 'MU':
								contracttype = 'Missing Upon First Use';
								break;
							case 'OO':
								contracttype = 'Out of Warranty (no coverage)';
								break;
							case 'PA':
								contracttype = 'AppleCare Parts Agreement';
								break;
							case 'PP':
								contracttype = 'AppleCare Protection Plan';
								break;
							case 'QP':
								contracttype = 'Quality Program';
								break;
							case 'RA':
								contracttype = 'AppleCare Repair Agreement';
								break;
							case 'RE':
								contracttype = 'Repeat Service';
								break;
							case 'G9':
								contracttype = 'Pending Coverage Check';
								break;
							case 'TC':
								contracttype = 'Edu/Govt Warranty (Australia)';
								break;
							case 'PT':
								contracttype = 'Additional Part Coverage';
								break;
							case 'EC':
								contracttype = 'Additional Service Coverage';
								break;
							case 'C1':
								contracttype = 'New - AppleCare Protection Plan';
								break;
							case 'VW':
								contracttype = 'Variable Warranty';
								break;
							default :
								contracttype = 'Aucun';
								break;
						}
					}
					catch(ex){
						contracttype = "Aucun";
					}
					configdescription = xmldoc.getElementsByTagName("configDescription")[0].childNodes[0].nodeValue;
					
					$('#searchinputresult').removeClass('searchgifload', 0);
					$('#searchinputresult').addClass('searchgifcheck', 0);
					statusserial = true;
					sendmailstatus();
				}
				catch(ex){
					$('#searchinputresult').addClass('searchgifcancel', 0);
					statusserial = false;
					sendmailstatus();
				}
		});
	}
	
/*********************************** FIN DU TRAITEMENT XML (STATUS WARRANTY) ***********************************/

/*********************************** DEBUT DU TRAITEMENT VERIFICATION ***********************************/
	function sendmailstatus(){
		if(statusserial == true && statusmail == true){
			$('#searchbuttonstatus').button({ disabled: false });	
		}
		else
		{
			$('#searchbuttonstatus').button({ disabled: true });		
		}
	}
	
/*********************************** FIN DU TRAITEMENT VERIFICATION ***********************************/

	// INITIALISATION DES ENTITES //
	statusdisplay = true;
	statusrequest = false;
	statusserial = false;
	statusmail = false;
	
	bubbleoptions =	{
		themeName: 'all-black',
		position: 'right',
		height: '50px',
		tail: {align:'midle',hidden: false},
		innerHtml: 'L\'adresse mail est utilisée pour<br /> vous envoyer les détails de votre garantie.'
	};
	
	$('#searchbuttonstatus').button();
	$('#searchhelpbutton').CreateBubblePopup(bubbleoptions);
	
	// ACTION A L'ENVOI DU SERIAL NUMBER (BLUR) //
	$("#searchinputresult").keyup(function(){
		serialNumber = $('#searchinputresult').val();
		longueur = serialNumber.length;
		$('#searchbuttonstatus').button({ disabled: true });
		if(longueur >= 11){
			if(serialNumber.substr(0,1) == 'S'){
				serialNumber = serialNumber.substr(1,longueur);
			}
			$('#searchinputresult').removeClass('searchgifcheck', 0);
			$('#searchinputresult').removeClass('searchgifcancel', 0);
			$('#searchinputresult').addClass('searchgifload', 0);
			xmlAuthRequest('stagiaire@youcast.fr', 'grenoble', 'FR', 'GMT', '621122', serialNumber);
		}
		else{
			//$('#searchinputresult').addClass('searchgifcancel', 0);
			$('#searchinputresult').removeClass('searchgifcheck', 0);
			$('#searchinputresult').removeClass('searchgifcancel', 0);
			statusserial = false;
			sendmailstatus();
		}
    });
	
	// ACTION A L'ENVOI DU MAIL (KEYUP) //
	$("#searchinputoptions").keyup(function(event){
			reg = /^[a-zA-Z0-9.-_]+@[a-zA-Z0-9.-]+\.[a-z]{2,3}$/;
			valeur = $('#searchinputoptions').val();
			if(reg.exec(valeur)!=null){
				$('#searchinputoptions').removeClass('searchgifcancelmail', 0);
				$('#searchinputoptions').addClass('searchgifcheckmail', 0);
				statusmail = true;
				sendmailstatus();
			}
			else{
				$('#searchinputoptions').removeClass('searchgifcheckmail', 0);
				$('#searchinputoptions').addClass('searchgifcancelmail', 0);
				statusmail = false;
				sendmailstatus();
			}
    });
	
	// ACTION A L'ENVOI DU MAIL (BLUR) //
	$('#searchinputoptions').blur(function(){
		reg = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-z]{2,3}$/;
		valeur = $('#searchinputoptions').val();
		if(reg.exec(valeur)!=null){
			$('#searchinputoptions').removeClass('searchgifcancelmail', 0);
			$('#searchinputoptions').addClass('searchgifcheckmail', 0);
			statusmail = true;
			sendmailstatus();
		}
		else{
			$('#searchinputoptions').removeClass('searchgifcheckmail', 0);
			$('#searchinputoptions').addClass('searchgifcancelmail', 0);
			statusmail = false;
			sendmailstatus();
		}
	});
	
	// ACTION AU CLIC DE LA CROIX DU SERIAL NUMBER //
	$("#searchremoveresult").click(function(){
		$("#searchinputresult").val('');
		$('#searchinputresult').removeClass('searchgifcancel', 0);
		$('#searchinputresult').removeClass('searchgifcheck', 0);
		$('#searchinputresult').removeClass('searchgifload', 0);
		$('#searchbuttonstatus').button({disabled: true});
    });
	
	// ACTION AU CLIC DE LA CROIX DES PIECES //
	$("#searchremoveoptions").click(function() {
		$("#searchinputoptions").val('');
		$('#searchinputoptions').removeClass('searchgifcancelmail', 0);
		$('#searchinputoptions').removeClass('searchgifcheckmail', 0);
		$('#searchbuttonstatus').button({disabled: true});
    });
	
	// ACTION AU CLIC DU BOUTON ENVOYER //
	$("#searchbuttonstatus").click(function(){
		$('#searchbuttonstatus').button({disabled: true});
		serialnumber = $('#searchinputresult').val().toUpperCase();
		mail = $('#searchinputoptions').val();
		longueur = serialNumber.length;
		if(serialnumber.substr(0,1) == 'S'){
			serialnumber = serialnumber.substr(1,longueur).toUpperCase();
		}
		if(productdescription.indexOf('MacBook Pro') != -1){
			if(productdescription.indexOf('13') != -1){
				applecare = 249;
			}
			else{
				applecare = 349;
			}	
		}
		else if(productdescription.indexOf('MacBook Air') != -1 || (productdescription.indexOf('MacBook') != -1 && productdescription.indexOf('MacBook Pro') == -1)){
			applecare = 249;
		}
		else if(productdescription.indexOf('iMac') != -1){
			applecare = 179;
		}
		else if(productdescription.indexOf('iPad') != -1){
			applecare = 79;
		}
		else if(productdescription.indexOf('iPod touch') != -1 || productdescription.indexOf('iPod classic') != -1){
			applecare = 59;
		}
		else if(productdescription.indexOf('iPod nano') != -1 || productdescription.indexOf('iPod shuffle') != -1){
			applecare = 39;
		}
		else if(productdescription.indexOf('Mac Mini') != -1){
			applecare = 169;
		}
		else if(productdescription.indexOf('Mac Pro') != -1){
			applecare = 299;
		}
		else if(productdescription.indexOf('Apple TV') != -1){
			applecare = 29;
		}
		else{
			applecare = 0;
		}
		$.post('php/sendmail.php',{
			productdescription: productdescription,
			serialnumber: serialnumber,
			estimatedpurchasedate: estimatedpurchasedate,
			warrantystatus: warrantystatus,
			imageurl: imageurl,
			daysremaining: daysremaining,
			contracttype: contracttype,
			configdescription: configdescription,
			applecare: applecare,
			mail: mail,
			action: 'sendmail',
			},function(data){
				if(data == 1){
					$('#searchbuttonstatus').fadeOut('slow', function(){
						$('#searchspan').fadeIn('slow');
					});
					setTimeout(function(){
						$('#searchspan').fadeOut('slow', function(){
							$('#searchbuttonstatus').fadeIn('slow');
						});
						$('#searchbuttonstatus').button({disabled: false});	
					}, 4500);
				}
		});
	});
	
	// ACTION AU CLIC AU DEHORS DE LA POP-UP //
	$('div').click(function(){
		id = this.id;
		if(id == 'header' || id == 'tabtop' || id == 'othertext'){
			$('#searchcontenttop').fadeOut('slow');
		}
	});
	
	
	// ACTION AU CLIC DE LA LOUPE //
	$('#searchimgloupe').click(function(){
		if($('#searchcontenttop').css('display') != 'block'){
			setTimeout(function(){
				$('#searchcontenttop').fadeIn('slow');
			}, 100);
		}
		else{
			setTimeout(function(){
				$('#searchcontenttop').fadeOut('slow');
			}, 100);
		}
	});
	
});
