﻿function showArea(){
	areaPlainElement = document.getElementById("area_plain");
	areaHtmlElement = document.getElementById("area_html");
	buttonYesElement = document.getElementById("group_description_yes");
	buttonNoElement = document.getElementById("group_description_no");
	
	iframeElement = document.getElementById("iframe");
	descriptionPlain = document.getElementById("description_plain");
	
	if (buttonYesElement.checked == true){
		iframeElement.contentWindow.document.body.innerHTML = descriptionPlain.value;
		areaPlainElement.style.display = "none";
		areaHtmlElement.style.display = "block";
	} else if (buttonNoElement.checked == true){
		descriptionPlain.value = iframeElement.contentWindow.document.body.innerHTML.replace(/(<([^>]+)>)/ig,"");
		areaPlainElement.style.display = "block";
		areaHtmlElement.style.display = "none";
	}
}

function calculateSum(){
	boldElement = document.getElementById("bold");
	highlightedElement = document.getElementById("highlighted");
	categoryElement = document.getElementById("catfeatured");
	homepageElement = false;
	if (document.getElementById("featured")){
		homepageElement = document.getElementById("featured");
	}
	comboElement = document.getElementById("combo");
	
	if (document.getElementById("super_combo")){
		superComboElement = document.getElementById("super_combo");
	}
	
	sumElement = document.getElementById("sum");
	
	var sum = 0.00;
	
	if (boldElement.checked){
		sum += 0.75;
	}
	if (highlightedElement.checked){
		sum += 1.00;
	}
	if (categoryElement.checked){
		sum += 3.00;
	}
	if (homepageElement){
		if (homepageElement.checked){
			sum += 8.0;
		}
	}
	if (comboElement.checked){
		boldElement.checked = false;
		highlightedElement.checked = false;
		categoryElement.checked = false;
		if (homepageElement){
			if (homepageElement.checked){
				sum = 11.75;
			} else {
				sum = 3.75;
			}
		} else {
			sum = 3.75;
		}	
	}
	if(superComboElement){
		if(superComboElement.checked){
			boldElement.checked = false;
			highlightedElement.checked = false;
			categoryElement.checked = false;
			comboElement.checked = false;
			homepageElement.checked = false;
			sum = 10.00;
		}
	}
	sumElement.innerHTML = sum.toFixed(2); 
}

function showPreview(id){
	previewElement = document.getElementById("preview");
	if (id == 1){
		previewElement.innerHTML = '<img src="http://www.aukcije.hr/images/features_1.png"/>';
	} else if (id == 2){
		previewElement.innerHTML = '<img src="http://www.aukcije.hr/images/features_2.png"/>';
	} else if (id == 3){
		previewElement.innerHTML = '<img src="http://www.aukcije.hr/images/features_3.png"/>';
	} else if (id == 4){
		previewElement.innerHTML = '<img src="http://www.aukcije.hr/images/features_4.png"/>';
	} else if (id == 5){
		previewElement.innerHTML = '<img src="http://www.aukcije.hr/images/features_5.png"/>';
	} else if (id == 6){
		previewElement.innerHTML = '<img src="http://www.aukcije.hr/images/features_6.png"/>';
	} else {
		previewElement.innerHTML = '';
	}
}

function dataValidation(){
	titleElement = document.getElementById("title");
	subtitleElement = document.getElementById("subtitle");
	minimumBidElement = document.getElementById("minimum_bid");
	paymentElement = document.getElementsByName("payment[]");
	groupDescriptionNoElement = document.getElementById("group_description_no");
	groupDescriptionYesElement = document.getElementById("group_description_yes");
	groupAuctionsEndsYesElement = document.getElementById("group_auction_ends_yes");
	groupAuctionsEndsNoElement = document.getElementById("group_auction_ends_no");
	minutesEndsElement = document.getElementById("minutes_ends");
	hoursEndsElement = document.getElementById("hours_ends");
	buyNowElement = false;
	if(document.getElementById("buy_now")){
		buyNowElement = document.getElementById("buy_now");
	}
	reservePriceElement = document.getElementById("reserve_price");
	otherCostsElement = document.getElementById("other_costs");
	otherCostsNameElement = document.getElementById("other_costs_name");
	
	if (document.getElementById("iframe") && document.getElementById("description_html")){
		iframeElement = document.getElementById("iframe");
		descriptionHtmLElement = document.getElementById("description_html");
		descriptionHtmLElement.value = iframeElement.contentWindow.document.body.innerHTML;
	}
	
	if (titleElement.value == ""){
		markElement(titleElement, "Niste upisali naziv aukcije");
		return;
	} else {
		unmarkElement(titleElement);
	}
	
	if (groupDescriptionNoElement.checked){
		descriptionElement = document.getElementById("description_plain");
		if (descriptionElement.value == ""){
			markElement(descriptionElement, "Niste unijeli opis predmeta");
			return;
		} else {
			unmarkElement(descriptionElement);
		}
	} else if (groupDescriptionYesElement.checked){
		descriptionElement = document.getElementById("description_html");
		if (descriptionElement.value == "" || descriptionElement.value == "<br>"){
			markElement(descriptionElement, "No description...");
			return;
		} else if (checkImgTag1(descriptionElement.value)){
			alert("Slike u opisu nisu dozvoljene");
			return;
		} else if (checkImgTag2(descriptionElement.value)){
			alert("Slike u opisu nisu dozvoljene");
			return;
		}else {
			unmarkElement(descriptionElement);
		}
	}
	
	if (titleElement.value.length > 75){
		markElement(titleElement, "Naslov aukcije je predug");
		return;
	} else {
		unmarkElement(titleElement);
	}
	
	if (subtitleElement.value.length > 100){
		markElement(subtitleElement, "Podnaslov je predug");
		return;
	} else {
		unmarkElement(subtitleElement);
	}
	
	if (!(parseFloat(minimumBidElement.value.replace(/,/,".")) > 0)){
		markElement(minimumBidElement, "Početna cijena mora biti veća od 0 kn");
		return;
	} else {
		unmarkElement(minimumBidElement);
	}
	
	paymentCheck = false;
	for (i = 0; i < paymentElement.length; i++){
		if (paymentElement[i].checked){
			paymentCheck = true;
		}
	}
	if (!paymentCheck){
		alert("Niste izabrali način plaćanja");
		return;
	}
	
	if(buyNowElement){
		if (buyNowElement.value != ""){
			if (parseFloat(buyNowElement.value.replace(/,/,".")) <= parseFloat(minimumBidElement.value.replace(/,/,"."))){
				markElement(buyNowElement, "Cijena za 'kupi odmah' mora biti veća od početne cijene");
				return;
			} else {
				unmarkElement(buyNowElement);
			}
		}
	}
	
	if(reservePriceElement.value != ""){
		if (parseFloat(minimumBidElement.value.replace(/,/,".") * 5) <= parseFloat(reservePriceElement.value.replace(/,/,"."))){
			markElement(reservePriceElement, "Rezervna cijena ne može biti veća od peterostruke početne");
			return;
		} else {
			unmarkElement(reservePriceElement);
		}
		if (buyNowElement){
			if (buyNowElement.value != ""){
				if (parseFloat(buyNowElement.value.replace(/,/,".")) <= parseFloat(reservePriceElement.value.replace(/,/,"."))){ 
					markElement(buyNowElement, "Cijena za 'kupi odmah' mora biti veća od rezervne cijene");
					return;
				} else {
					unmarkElement(buyNowElement);
				}		
			}
		}
	}
	
	
	
	if (otherCostsElement.value != "" && otherCostsNameElement.value == ""){
		markElement(otherCostsNameElement, "Morate odrediti dodatni način isporuke");
		return;
	} else {
		unmarkElement(otherCostsNameElement);
	}
	
	if (otherCostsElement.value == "" && otherCostsNameElement.value != ""){
		markElement(otherCostsElement, "Morate odrediti cijenu dodatnog načina isporuke");
		return;
	} else {
		unmarkElement(otherCostsElement);
	}
	
	if(checkSameChars(titleElement.value)){
		markElement(titleElement, "Upisali ste previše istih znakova za redom");
		return;
	} else {
		unmarkElement(titleElement);
	}
	
	if(!firstCharCheck(titleElement.value)){
		markElement(titleElement, "Prvi znak mora biti alfanumerički");
		return;
	} else {
		unmarkElement(titleElement);
	}
	
	if (subtitleElement.value!=''){
		if(!firstCharCheck(subtitleElement.value)){
			markElement(subtitleElement, "Prvi znak mora biti alfanumerički");
			return;
		} else {
			unmarkElement(subtitleElement);
		}
	}
	
	if(groupAuctionsEndsYesElement){
		if(groupAuctionsEndsYesElement.checked){
			if (hoursEndsElement.value == (-1)){
				markElement(hoursEndsElement, "Niste izabrali sat");
				return;
			} else {
				unmarkElement(hoursEndsElement);
			}
			if (minutesEndsElement.value == (-1)){
				markElement(minutesEndsElement, "Niste izabrali minute");
				return;
			} else {
				unmarkElement(minutesEndsElement);
			}
		}
	}
	
	submitForm();
}

function mainPictureChecked(){
	mainPictureElement = document.getElementById("main_picture");
	if(mainPictureElement.value != "" || mainPictureElement.value == "n/a"){
		submitForm();
	} else {
		alert("Izaberite glavnu sliku u aukciji");
		return;
	}
}

function submitForm(){
	if (document.getElementById("iframe") && document.getElementById("description_html")){
		iframeElement = document.getElementById("iframe");
		descriptionHtmLElement = document.getElementById("description_html");
		descriptionHtmLElement.value = iframeElement.contentWindow.document.body.innerHTML;
	}
	document.form.submit();
}

function markElement(element, message){
	element.style.border="2px solid red";
	element.focus();
	alert(message);
}

function unmarkElement(element){
	element.style.border="";
}

function openwindow(link, width, height)
{
	window.open(link, "mywindow", "menubar=0, resizable=1, scrollbars=1, width="+width+", height="+height+"");
}

function showHideElement(element, action){
	actionElement = document.getElementById(element);
	if (action == "hide"){
		actionElement.style.display = "none";
		actionElement.value = "";
	} else if (action == "show"){
		actionElement.style.display = "block";
	}
}

function showHideTokElement(element){
	actionElement = document.getElementById(element);
	if (actionElement.style.display == "block"){
		actionElement.style.display = "none";
	} else {
		actionElement.style.display = "block";
	}
}

function enableDisableElement(element, action){
	actionElement = document.getElementById(element);
	if (action == "disable"){
		actionElement.value = "";
		actionElement.disabled = true;
	} else if (action == "enable"){
		actionElement.disabled = false;
	}
}

function checkSameChars(string){
	return /(.)\1{4,}/.test(string);
}

function checkExtension(string){
	return /^[^\.]+\.[^\.]+$/.test(string);
}

function checkImgTag1(string){
	return /(\&lt\;)(\s)*(img|IMG)(.)*(\&gt\;)/.test(string);
}

function checkImgTag2(string){
	return /\<(\s)*(img|IMG)(.)*\>/.test(string);
}

function firstCharCheck(string){
	return /^([a-zA-Z0-9čćžšđČĆŽŠĐ])/.test(string);
}

function pictureExtensionCheck(string){
	return /^(.)+\.(jpg|jpeg|JPG|JPEG|gif|GIF|png|PNG)$/.test(string);
}

function checkPictureUpload(){
	fileElement = document.getElementById('file');
	if(fileElement.value==''){ 
		alert('Niste izabrali sliku'); 
		return false;
	}
	if (!(pictureExtensionCheck(fileElement.value))){
		alert("Nedozvoljen format slike");
		return false;
	}
	if (!(checkExtension(fileElement.value))){
		alert("Nepravilan naziv slike");
		return false;
	}
	return true;
}