var current_price=10;




function init(last_price)
{
	current_price = last_price;
	hidePrice();
	document.ad_form.ad_text1.value = "";
	document.ad_form._count1.value = 0;
}

// ============ Ad Type Handlers

function handleType0 () // FREE Ad
{
	document.getElementById("ad_photo1").style.display = "none";
	document.getElementById("issues_nr").style.display = "none";
}

function handleType1 () // GUARANTEE
{
	document.getElementById("ad_photo1").style.display = "none";
	document.getElementById("issues_nr").style.display = "";
	document.getElementById("nr_of_issues").innerHTML = "Number of issues:";
}

function handleType2 () // Bold It
{
	document.getElementById("ad_photo1").style.display = "none";
	document.getElementById("issues_nr").style.display = "";
	document.getElementById("nr_of_issues").innerHTML = "Number of issues:";
}

function handleType3 () // Photo
{
	document.getElementById("ad_photo1").style.display = "";
	document.getElementById("issues_nr").style.display = "";
	document.getElementById("nr_of_issues").innerHTML = "Number of issues:";
}

function handleType4 () // Bold 2+1
{
	document.getElementById("ad_photo1").style.display = "none";
	document.getElementById("issues_nr").style.display = "";
	document.getElementById("nr_of_issues").innerHTML = "Number of Buy 2 Get 1 Free Specials:";
}

function handleType5 () // Photo 2+1
{
	document.getElementById("ad_photo1").style.display = "";
	document.getElementById("issues_nr").style.display = "";
	document.getElementById("nr_of_issues").innerHTML = "Number of Buy 2 Get 1 Free Specials:";
}

function handleType6 () // White on Black
{
	document.getElementById("ad_photo1").style.display = "none";
	document.getElementById("issues_nr").style.display = "";
	document.getElementById("nr_of_issues").innerHTML = "Number of issues:";
}


function handleTypeChange () 
{
	theSelect = document.getElementById("type");
	theType = theSelect.value;
	
	wordCount(document.ad_form.ad_text1,1);
	
	switch (theType){
		case "0": handleType0(); break;
		case "1": handleType1(); break;
		case "2": handleType2(); break;
		case "3": handleType3(); break;
		case "4": handleType4(); break;
		case "5": handleType5(); break;
		case "6": handleType6(); break;
	}
	
	wordCount(document.ad_form.ad_text1,1);

	if (theType != "0") {
		document.getElementById("price").style.display = "";
		document.getElementById("total_price").style.display = "";
		showPrice();
	} else {
		document.getElementById("price").style.display = "none";
		document.getElementById("total_price").style.display = "none";
		hidePrice();
	}
}

function handleIssues()
{
	wordCount(document.ad_form.ad_text1,1);
}

// =======================================



function showPrice(){
	document.getElementById("total_price").style.display = "";
}

function hidePrice(){
	document.getElementById("total_price").style.display = "none";
}

function getPrice(words){
	showPrice();
	type = document.getElementById("type").value;
	issues = document.ad_form.issues.value;

	max_w = 20;
	switch (type) {
		case "1" : 
			p=3;
			wp=0.1;
			break;
		case "2" : 
		case "3" : 
			p=6; 
			wp=0.1;
			break;
		case "4" : 
		case "5" : 
			p=12; 
			wp=0.2;
			break;
		case "6" :
			issues = document.ad_form.issues.value;
			if (issues < 4) {
				p = 15;
			} else if (issues < 12 ) {
				p = 12;
			} else {
				p = 11;	
			}
			wp=0.1; 
			max_w = 25;
			break;
	}
	
	if (words > max_w) {
		total = p + ((words-max_w) * wp);	
	} else {
		total = p;	
	}
	total1= total * issues;
	
	total = total * issues + current_price;
	document.getElementById("thePrice").innerHTML = numberformat(total,2);
	document.getElementById("thePrice1").innerHTML = numberformat(total1,2);

}

function handleError(msg)
{
	document.ad_form.ad_text1.value = "";
	alert(msg);
	getPrice(0);
}

function wordCount(w,idx){
	var y=w.value;
	var r = 0;
	
	/*
	if (y.indexOf("_") != -1){
		handleError("The '_' character is disallowed !!!");
		return;
	}
	
	if (y.indexOf("-") != -1){
		handleError("The '-' character is disallowed !!!");	
		return;
	}
	
	if (y.indexOf("+") != -1){
		handleError("The '+' character is disallowed !!!");	
		return;
	}
	*/
	
	a=y.replace(/\s/g,' ');
	a=a.split(' ');
	for (z=0; z<a.length; z++) {
		if (a[z].length > 0) r++;
		//if (a[z].length > 15) handleError("The text contents words with lenght > 15 characters!!!");
	}
	
	str = "";
	
	theTextLimit = 50;
	
	if (document.ad_form.type.value == 6){
		theTextLimit = 25;
	}
	
	if ( r > theTextLimit ){
		alert ("Error... Too many Words!!!!\nThe max words is " + theTextLimit + "!");
		for (z=0; z<theTextLimit; z++) {
			str += a[z] + " ";
		}
		document.ad_form.ad_text1.value = str;
		return;
	}

	if (document.ad_form.type.value != "0"){
		getPrice(r);	
	}
	
	switch (idx){
		case 1:
			target = document.getElementById('count1');
			target.innerHTML = r;
			target = document.ad_form._count1;
			target.value = r;
			break;
		case 2:
			target = document.getElementById('count2');
			target.innerHTML = r;
			target = document.ad_form._count2;
			target.value = r;
			break;
		case 3:
			target = document.getElementById('count3');
			target.innerHTML = r;
			target = document.ad_form._count3;
			target.value = r;
			break; 
	}
}

function numberformat(num,dec){
	mul=Math.pow(10,dec);
	num=num*mul;
	num=Math.round(num);
	num = num/mul;
	var numstr=String(num);

	if(numstr.indexOf(".") == -1){
		numstr = numstr + ".";
		for(nfi=0;nfi<dec;nfi++) numstr = numstr + "0";
	}
	decpl = numstr.length - numstr.indexOf(".");
	decpl = decpl - 1;
	if (decpl < dec){
		for(nfi=decpl;nfi<dec;nfi++) numstr = numstr + "0";
	}
	return (numstr);
}

//============================ VALIDATE USER INPUT

function validate_mail(str) {
   return (str.indexOf(".") > 2) && (str.indexOf("@") > 0 && (str.length) > 8);
}

function check_input(frmObj){
	valid = true;
	
	if (frmObj.name.value == ""){
		alert("Error!\n Please enter your full name...");
		frmObj.name.focus();
		valid = false;
		return valid;
	} else if (!validate_mail(frmObj.email.value)){
		alert("Error!\n Please enter an valid email address...");
		frmObj.email.focus();
		valid = false;
		return valid;
	} else if (frmObj.phone.value == ""){
		alert("Error!\n Plaease enter your phone number...");
		frmObj.phone.focus();
		valid = false;
		return valid;
	} else if (frmObj.category.value == ""){
		alert("Error!\n Plaease select a Category...");
		frmObj.category.focus();
		valid = false;
		return valid;
	}
	
	switch (frmObj.type.value){
		case "1" :
		case "2" :	
		case "4" :	
		case "6" :	
			if (frmObj.ad_text1.value  == ""){
				alert("Error!\n Please enter your text...");
				frmObj.ad_text1.focus();
				valid = false;
				return valid;
			}
			
			break;
			
		case "3" :	
		case "5" :	
			if (frmObj.ad_text1.value  == ""){
				alert("Error!\n Please enter your text...");
				frmObj.ad_text1.focus();
				valid = false;
				return valid;
			} else if (frmObj.ad_photo1.value == ""){
				alert("Error!\n Please add your photo...");
				frmObj.ad_photo1.focus();
				valid = false;
				return valid;
			} 
			
			break;
			
	}
	return valid;
}