// JavaScript Document

window.onload = init;

var request = createRequest(); 

function init()                           
	{  

		document.getElementById('submit').onclick = sendOrder;

		document.getElementById('day').onchange = instantQuote;
		document.getElementById('month').onchange = instantQuote;
		document.getElementById('year').onchange = instantQuote;
		document.getElementById('hour').onchange = instantQuote;
		document.getElementById('minute').onchange = instantQuote;
		document.getElementById('apm').onchange = instantQuote;
		document.getElementById('ptype').onchange = instantQuote;
		document.getElementById('pnum').onchange = instantQuote;
		document.getElementById('level').onchange = instantQuote;

		document.getElementById('calendar_button').onclick = showCalendar;
		
		
		document.getElementById('ptype').onfocus = function() {document.getElementById('ptype_error').innerHTML = ''};
		document.getElementById('pnum').onfocus = function() {document.getElementById('pnum_error').innerHTML = ''};
		document.getElementById('level').onfocus = function() {document.getElementById('level_error').innerHTML = ''};
		document.getElementById('topic').onfocus = function() {document.getElementById('topic_error').innerHTML = ''};
		document.getElementById('format').onfocus = function() {document.getElementById('format_error').innerHTML = ''};
		document.getElementById('snum').onfocus = function() {document.getElementById('snum_error').innerHTML = ''};
		document.getElementById('info').onfocus = function() {document.getElementById('info_error').innerHTML = ''};
		document.getElementById('fname').onfocus = function() {document.getElementById('fname_error').innerHTML = ''};
		document.getElementById('lname').onfocus = function() {document.getElementById('lname_error').innerHTML = ''};
		document.getElementById('email').onfocus = function() {document.getElementById('email_error').innerHTML = ''};
		document.getElementById('confemail').onfocus = function() {document.getElementById('confemail_error').innerHTML = ''};

		document.getElementById('day').onfocus = function() {document.getElementById('ddate_error').innerHTML = ''};
		document.getElementById('month').onfocus = function() {document.getElementById('ddate_error').innerHTML = ''};
		document.getElementById('year').onfocus = function() {document.getElementById('ddate_error').innerHTML = ''};
		document.getElementById('hour').onfocus = function() {document.getElementById('ddate_error').innerHTML = ''};
		document.getElementById('minute').onfocus = function() {document.getElementById('ddate_error').innerHTML = ''};
		document.getElementById('apm').onfocus = function() {document.getElementById('ddate_error').innerHTML = ''};
	}

function showCalendar() 
	{
	displayCalendarSelectBox(document.forms[0].year,document.forms[0].month,document.forms[0].day,document.forms[0].hour,document.forms[0].minute,this)
	
	}

                 
function instantQuote()                                     
{
	var deadline = [];
	deadline['date']=document.getElementById('day').value;
	deadline['month']=document.getElementById('month').value;
	deadline['year']=document.getElementById('year').value;
	deadline['hour']=document.getElementById('hour').value;
	deadline['minute']=document.getElementById('minute').value;
	deadline['apm']=document.getElementById('apm').value;                                   

	var ptype = document.getElementById('ptype').value;
	var pnum = document.getElementById('pnum').value;
	var level = document.getElementById('level').value;
	var servertime = document.getElementById('servertime').value;
	var timezone = document.getElementById('timezone').innerHTML;
	
	var pacific_offset;
	if(timezone='PST')
	{
		pacific_offset=8;
	}
	else
	{
		pacific_offset=7;
	}
	
	var deadline_time = new Date(deadline['year']+'/'+deadline['month']+'/'+deadline['date']+' '+deadline['hour']+':'+deadline['minute']+':00 '+deadline['apm']);
	
	var gmt_offset = deadline_time.getTimezoneOffset()/60;
	var offset = gmt_offset - pacific_offset; 

	var offset_seconds = parseInt(offset*3600); 
	var server_adjusted_seconds = parseInt(servertime)+parseInt(offset_seconds); 
	
	deadline_seconds = Date.parse(deadline_time)/1000; 

	seconds_to_deadline=deadline_seconds-server_adjusted_seconds; 
	
	hours_to_deadline = Math.floor(seconds_to_deadline/3600); 
	
	document.getElementById('hours_to_deadline').value = hours_to_deadline;
	
	document.getElementById('words1').innerHTML = 300*pnum;
	document.getElementById('words2').innerHTML = 330*pnum;
	document.getElementById('time').innerHTML = update_ddate(hours_to_deadline);
	
	if (hours_to_deadline >= 6 ) 
	{
		document.getElementById('day').style.border='thin solid #A4A3A0';
		document.getElementById('month').style.border='thin solid #A4A3A0';
		document.getElementById('year').style.border='thin solid #A4A3A0';
		document.getElementById('hour').style.border='thin solid #A4A3A0';
		document.getElementById('minute').style.border='thin solid #A4A3A0';
		document.getElementById('apm').style.border='thin solid #A4A3A0';
		
		if (ptype != 0)
		{
			if (pnum != 0) 
			{
				if (level != 0) 
				{				
				var url = 'order/quote.php';
				string = '?time='+hours_to_deadline+'&level='+level;
				
				
				 /*Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "no-cache");
Response.Expires = -1; 
*/
				
				
				url = url + string;
				request.onreadystatechange = function()
					{
						if (request.readyState == 4) 
							{
								if (request.status == 200) 
									{
				

			 							var pricePerPage = request.responseText;			
			
			 document.getElementById('quote').style.display = 'block';
			 document.getElementById('price').innerHTML = pricePerPage;
			 document.getElementById('total').innerHTML = (pricePerPage*pnum).toFixed(2);
			 document.getElementById('ddate').value = update_ddate(hours_to_deadline);			
			                              }
								}		
						}
	
	request.open('GET',url,true);
	

	

	request.send(null);
				
				
				} 
				else 
				{
					document.getElementById('quote').style.display = 'none';
				}
			} //
		} //
	} else {
		document.getElementById('day').style.border='thin solid red';
		document.getElementById('month').style.border='thin solid red';
		document.getElementById('year').style.border='thin solid red';
		document.getElementById('hour').style.border='thin solid red';
		document.getElementById('minute').style.border='thin solid red';
		document.getElementById('apm').style.border='thin solid red';
		document.getElementById('quote').style.display = 'none';	
		
	}	
}
	function sendOrder()
{		
		var data = document.forms['form'];
		var JSONObject = new Object;
		JSONObject.fname = addslashes(data['fname'].value);
		JSONObject.lname = addslashes(data['lname'].value);
		JSONObject.day = data['day'].value;
		JSONObject.month = data['month'].value;
		JSONObject.year = data['year'].value;
		JSONObject.hour = data['hour'].value;
		JSONObject.minute = data['minute'].value;
		JSONObject.apm = data['apm'].value;
		JSONObject.ddate = data['ddate'].value;
		JSONObject.ptype = data['ptype'].value;
		JSONObject.pnum = data['pnum'].value;
		JSONObject.topic = addslashes(data['topic'].value);
		JSONObject.level = data['level'].value;
		JSONObject.format = data['format'].value;
		JSONObject.snum = data['snum'].value;
		JSONObject.info = addslashes(data['info'].value);
		JSONObject.ordernum = data['ordernum'].value;
		JSONObject.email = data['email'].value;
		JSONObject.confemail = data['confemail'].value;	
		JSONObject.hours_to_deadline = data['hours_to_deadline'].value;  
	  
	  var JSONString = JSON.stringify(JSONObject);	
	
	var url = 'scripts/process_order.php?ts='+new Date().getTime();
	request.open('POST',url,true);
	request.onreadystatechange = function()
	{
		if (request.readyState == 4) 
		{
			if (request.status == 200) 
			{
			 // do something
			 var parsed = JSON.parse(request.responseText);
			 if(parsed.result==1)
				{
				for (var key in parsed) 
					{
  		 				var obj = parsed[key];
   						for (var prop in obj) 
						{
							try
							{
							document.getElementById(prop+'_error').innerHTML=obj[prop];
							}
					catch(e){}
     
   						}
					}
				}
				else if(parsed.result==2)
					{
						document.location.href='/order.html';
					}
			}			 		
		}		
	}
	request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	request.send('&json='+JSONString);	
}
	

function update_ddate(time) {
	
	var val;
	if (time < 6) {
alert("Delivery time cannot be less than 6 hours!");


	} else {
	if (time <= 12) {
			val = 'Delivered in 6 hours';
	} else {
		if (time <= 24) {
			val = 'Delivered in 12 hours';	
		} else {
			if (time <= 48) {
				val = 'Delivered in 24 hours';	
			} else {
				if (time <= 72) {
					val = 'Delivered in 2 days';	
				} else {
					if (time <= 96) {
						val = 'Delivered in 3 days';		
					} else {
						if (time <= 120) {
							val = 'Delivered in 4 days';
						} else {
							if (time <= 144) {
								val = 'Delivered in 5 days';		
							} else {
								if (time <= 168) {
									val = 'Delivered in 6 days'; 
								} else {
									val = 'Delivered in 7 days or more';	
								}
							}
							
						}
							
					}
				}
			}
		}
	}
	}
	return val;
}

function addslashes (str) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Ates Goral (http://magnetiq.com)
    // +   improved by: marrtins
    // +   improved by: Nate
    // +   improved by: Onno Marsman
    // +   input by: Denny Wardhana
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   improved by: Oskar Larsson Högfeldt (http://oskar-lh.name/)
    // *     example 1: addslashes("kevin's birthday");
    // *     returns 1: 'kevin\'s birthday'
    return (str + '').replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
}


