/**
 * @author Sebastian Birlet, of Birlet Computer Services Holland
 */

var isFree = true;
	
_ADVERT_ID = 0; //global advert id, only allowed to submit if > 0
function CalculateCost()
{
 
	//initialize vars
	var totalCost = 0;
	var totalCostAfterDiscount = 0;
	var totalDiscount = 0;
	
	var noOfIssues = 0;
	var advertFrequency = 1;
	
	var uniqueAdvertCost = 0
	
	var automaticDiscountPercent = 0;
	var additionalDiscount = 0;
	
	var isColor = false;
	var isTextBox = false
	var isTextNegative = false;
	var doWeDesign = false;
	//var locationMultiplier = 1;
	
	var messageText = '';
	var messageWordCount = 0;
	var isTextAdvert = false;
	var tempAdvertCost = 0;
	var tempArray;

	var min_cost_per_week = 5;
	var costPerWord = 0;

  //free adverts that go over limits ( 3 weeks, 20 words, no extras ) are charged at this rate in euros
  var freeAdvertChargedCost = 0.4;
  
	//get info from form
	noOfIssues = document.getElementById('no_issues').value;

	//additionalDiscount =document.getElementById('additional_discount').value;
	//isColor = document.getElementById('is_color').checked;
	isTextBox = document.getElementById('text_box[]').checked;
	isTextNegative = document.getElementById('text_negative[]').checked;
	//doWeDesign = document.getElementById('we_design').checked;
	//advertFrequency = document.getElementById('frequency').value;

	//check message text
	messageText = document.getElementById('advert_message').value;
	
	messageWordCount = CountWords(document.getElementById('advert_message'), document.getElementById('word_count_span').innerHTML)
	

	
	//var locationMultiplierTemp = document.getElementById('location').value;
	//tempArray = locationMultiplierTemp.split("|");
	//locationMultiplier = tempArray[1];

  //all adverts online are text adverts
  advert_id = 2;	
		
		
	//change values if is a text message and update word count
	if(advert_id == 2 && messageWordCount > 0)
	{
		isTextAdvert = true;
		document.getElementById('word_count_span').innerHTML = messageWordCount;


		tempAdvertCost = document.getElementById('category_id').value.split('|');
		categoryId = tempAdvertCost[0];
		
		uniqueAdvertCost = tempAdvertCost[1];
    costPerWord = tempAdvertCost[1];
	}

	if(messageWordCount < 21 && !isTextBox && !isTextNegative && noOfIssues < 4 && costPerWord == 0)
	{
	  
	  if(isFree == false)
	  {
      //alert('Advert is free');
    }

    isFree = true;

    uniqueAdvertCost = 0;
  }
  else
  {
	  if(isFree == true)
	  {
      //alert('Advert is paid');
    }
    
    isFree = false;
    
    
    if(costPerWord == 0)
    {
      uniqueAdvertCost = freeAdvertChargedCost;
    }
    else
    {
      uniqueAdvertCost = costPerWord;
    }

  }
  
	//calculate discount percentage
	if(noOfIssues > 25)
	{
		automaticDiscountPercent = 0.125;
	}

	
	
	if(isTextBox && isTextAdvert)
	{
		uniqueAdvertCost = uniqueAdvertCost * 1.5;
	}
	
	if(isTextNegative && isTextAdvert)
	{
		uniqueAdvertCost = uniqueAdvertCost * 2;
	}



	//alert(noOfIssues + " - " + uniqueAdvertCost + " - " + messageWordCount)
	uniqueAdvertCost = (uniqueAdvertCost * messageWordCount);

	if(uniqueAdvertCost > 0 && uniqueAdvertCost < min_cost_per_week)
	{
		uniqueAdvertCost = min_cost_per_week;
	}
		
	totalCost = noOfIssues * uniqueAdvertCost;	
		

	
	totalCostAfterDiscount = (totalCost * (1-automaticDiscountPercent))
	
	
	
	totalDiscount = totalCost - totalCostAfterDiscount;

	var final_cost = (totalCostAfterDiscount).toFixed(2);

	
	
  
  

	//BTW calculations ####################
	document.getElementById('total_cost').innerHTML = final_cost;



	//per issue costs
	document.getElementById('total_cost_per_advert').innerHTML = (document.getElementById('total_cost').innerHTML / noOfIssues).toFixed(2);



	//END DATE CALCULATIONS #################
	start_day = document.getElementById('start_date_Day_ID').selectedIndex+1;
	start_month = document.getElementById('start_date_Month_ID').selectedIndex;
	start_year = document.getElementById('start_date_Year_ID').value;

	end_date = CalculateEndDate(start_day, start_month, start_year, noOfIssues, advertFrequency);
	document.getElementById('end_date_text').innerHTML  = 'est. End: ' +end_date;

}

function CalculateCost2()
{
 
	//initialize vars
	var totalCost = 0;
	var totalCostAfterDiscount = 0;
	var totalDiscount = 0;
	
	var noOfIssues = 0;
	var advertFrequency = 1;
	
	var uniqueAdvertCost = 0
	
	var automaticDiscountPercent = 0;
	var additionalDiscount = 0;
	
	var isColor = false;
	var isTextBox = false
	var isTextNegative = false;
	var doWeDesign = false;
	//var locationMultiplier = 1;
	
	var messageText = '';
	var messageWordCount = 0;
	var isTextAdvert = false;
	var tempAdvertCost = 0;
	var tempArray;

	var min_cost_per_week = 5;
	var costPerWord = 0;

  //free adverts that go over limits ( 3 weeks, 20 words, no extras ) are charged at this rate in euros
  var freeAdvertChargedCost = 0.4;
  
	//get info from form
	noOfIssues = document.getElementById('no_issues').value;

	//additionalDiscount =document.getElementById('additional_discount').value;
	//isColor = document.getElementById('is_color').checked;
	isTextBox = document.getElementById('text_box[]').checked;
	isTextNegative = document.getElementById('text_negative[]').checked;
	//doWeDesign = document.getElementById('we_design').checked;
	//advertFrequency = document.getElementById('frequency').value;

	//check message text
	messageText = document.getElementById('advert_message').value;
	
	//messageWordCount = CountWords(document.getElementById('advert_message'), document.getElementById('word_count_span').innerHTML)
	

	
	//var locationMultiplierTemp = document.getElementById('location').value;
	//tempArray = locationMultiplierTemp.split("|");
	//locationMultiplier = tempArray[1];

  //all adverts online are text adverts
  advert_id = 2;	
		
		
	//change values if is a text message and update word count
	if(advert_id == 2 )
	{
		isTextAdvert = true;
		


		tempAdvertCost = document.getElementById('category_id').value.split('|');
		categoryId = tempAdvertCost[0];
		
		uniqueAdvertCost = tempAdvertCost[1];
    costPerWord = tempAdvertCost[1];
	}

  
	//calculate discount percentage
	if(noOfIssues > 25)
	{
		automaticDiscountPercent = 0.125;
	}

	
	
	if(isTextBox && isTextAdvert)
	{
		uniqueAdvertCost = uniqueAdvertCost * 1.5;
	}
	
	if(isTextNegative && isTextAdvert)
	{
		uniqueAdvertCost = uniqueAdvertCost * 2;
	}



	//alert(noOfIssues + " - " + uniqueAdvertCost + " - " + messageWordCount)
	uniqueAdvertCost = (uniqueAdvertCost * messageWordCount);

	if(uniqueAdvertCost > 0 && uniqueAdvertCost < min_cost_per_week)
	{
		uniqueAdvertCost = min_cost_per_week;
	}
		
	totalCost = noOfIssues * uniqueAdvertCost;	
		

	
	totalCostAfterDiscount = (totalCost * (1-automaticDiscountPercent))
	
	
	
	totalDiscount = totalCost - totalCostAfterDiscount;
  totalDiscount = 0;
	var final_cost = (totalCostAfterDiscount).toFixed(2);

	
	
  
  

	//BTW calculations ####################
	document.getElementById('total_cost').innerHTML = final_cost;



	//per issue costs
	document.getElementById('total_cost_per_advert').innerHTML = (document.getElementById('total_cost').innerHTML / noOfIssues).toFixed(2);



	//END DATE CALCULATIONS #################
	start_day = document.getElementById('start_date_Day_ID').selectedIndex+1;
	start_month = document.getElementById('start_date_Month_ID').selectedIndex;
	start_year = document.getElementById('start_date_Year_ID').value;

	end_date = CalculateEndDate(start_day, start_month, start_year, noOfIssues, advertFrequency);
	document.getElementById('end_date_text').innerHTML  = 'est. End: ' +end_date;

}

function VerifyDate()
{
   var Today = new Date()
   newToday = new Date(Today.getFullYear(), Today.getMonth(), Today.getDate());

   if (start_date_Object.picked.date < newToday)
   {
     alert('Cannot select a date in the past.');
     return false;
   }
  
  return true;

}


function CountWords(w,x)
{
	var y=w.value;
	var r = 0;
	a=y.replace(/\s/g,' ');
	a=a.split(' ');
	for (z=0; z<a.length; z++) {if (a[z].length > 0) r++;}
	return r;
}

function validate_form(form)
{
  if(VerifyDate() == false)
  {
    return false;
  }

  tempAdvertCost = document.getElementById('category_id').value.split('|');
	categoryId = tempAdvertCost[0];

	if(categoryId < 2)
	{
		alert("Musisz wybrać kategorię!");
		return false;
	}
	
	 tel_chk = document.getElementById('chk_tel_no');
	 email_chk = tel_chk = document.getElementById('chk_email');
	 
	 tel_txt = document.getElementById('tel_no');
	 email_txt = document.getElementById('email');

   if((tel_chk.checked == true && tel_no.value.length>5) || (email_chk.checked  == true && email_txt.value.length > 4 ))
   {
     
   }
   else
   {
    alert('Brak numeru telefonu lub adresu e-mail. Przynajmniej jeden z nich musi być zaznaczony do pokazania w ogłoszeniu!');
    return false;
   }
	
  return true;
}



function CalculateEndDate(start_day, start_month, start_year, no_issues, frequency)
{
	//take care of no of issues 
	no_issues = no_issues-1;
	var one_day=1000*60*60*24;
	//add one day to make it last sunday if more then one issue
	if (no_issues > 0) {
		var totalSeconds = (one_day * 7 * no_issues * frequency) + one_day;
	}
	else
	{
		var totalSeconds = (one_day * 7 * no_issues * frequency);
	}
	

	var start_date=new Date(start_year, (start_month), start_day) //Month is 0-11 in JavaScript
	var start_unixtime = start_date.getTime();
	var end_date_unixtime = start_unixtime + totalSeconds;
	var end_dateObj = new Date();
	end_dateObj.setTime(end_date_unixtime);
	var end_date = end_dateObj.getDate() + '-' + (end_dateObj.getMonth()+1) + '-' + end_dateObj.getFullYear();
	return end_date;
}


//WIZARD STUFf

var curWizardStepNo = 1;
var wizardSteps = 4;

function WizardShow(stepNumber)
{
	
	var divID = 'step' + stepNumber;
	var steplinkid = 'step' + stepNumber + 'link';
	
	var oldDivID = 'step' + curWizardStepNo;
	var oldSteplinkid = 'step' + curWizardStepNo + 'link';


	document.getElementById(oldDivID).style.display = 'none';
	document.getElementById(divID).style.display = 'block';
	
	document.getElementById(oldSteplinkid).className = '';
	document.getElementById(steplinkid).className = 'selected';

	

	
	
	//button logic
	if(stepNumber > (wizardSteps -1))
	{
		document.getElementById('wizardNext').disabled = true;
	}
	else
	{
		document.getElementById('wizardNext').disabled = false;
	}
	
	if(stepNumber > 1)
	{
		document.getElementById('wizardBack').disabled = false;
	}
	else
	{
		document.getElementById('wizardBack').disabled = true;
	}
	
	curWizardStepNo = stepNumber;
}


function WizardNext()
{
	
	document.getElementById('wizardBack').disabled = false;
	WizardShow(curWizardStepNo + 1);
}


function WizardBack()
{
	document.getElementById('wizardNext').disabled = false;
	WizardShow(curWizardStepNo - 1);
}

function WizardFinish()
{
	
}



function showElement(elementName)
{
  document.getElementById(elementName).style.display = 'block';
}

function hideElement(elementName)
{
  document.getElementById(elementName).style.display = 'none';
}

function toggleShow(elementName)
{
  if(document.getElementById(elementName).style.display == 'none')
  {
    document.getElementById(elementName).style.display = 'inline';
  }
  else
  {
    document.getElementById(elementName).style.display = 'none';
  }
}


