﻿/**
 * @author Ing. Róbert Jašurek
 */

var pathPages = root+"pages/";
var pathParts = root+"parts/";
var altDomain = ink("zadajte prosím meno domény", "zadejte prosím jméno domény", "please enter a domain name");
var styleAjaxLoader = "white url('"+pathImg+"ajax_loader_p.gif') no-repeat center";



function clearField(elm){
	var results = new Array(
			"Je doména voľná?", "OBSADENÁ", "VOĽNÁ", 
			"Je doména volná?", "OBSAZENA", "VOLNÁ", 
			"Is  domain free?", "RESERVED", "FREE");
	if(results.exists(elm.value)){
		elm.value='';
		elm.className='valid-domain valid-domain-f';
	}
}

function validLogin(login){
	if(login == "") return;
	var data = "lgn=" + login + "&act=valid";
	ajxO.setHtml(pathParts + "hosting_ajax.php", "validLogin", data);
}

function validPwd(pwd){
	var elm = getElement("helpPwd");
	if(pwd.length < 6){
		elm.innerHTML = '<span class="red">Heslo má menej ako 6 znakov.</span>';
	}else{
		elm.innerHTML = '<span class="green">Heslo má správnu dĺžku.</span>';
	}
}

function validForm(type){
	var validArray = new Array();
	switch(type){
		case 0:
			validArray = new Array("domainOrder", "sld", "person", "login", "pwd", "pwd1", "email", "street"
				, "zip", "city", "country");
			break;
		case 1:
			validArray = new Array("domainOrder", "sld", "person", "login", "email", "street"
				, "zip", "city", "country");
			break;
	}
	var form = document.forms[0];
	for(var i=0; i<form.elements.length; i++){
		var elm = form.elements[i];
		if(validArray.exists(elm.name)){
			if(elm.value == ""){
				alt(ink("vyplňte prosím povinné polia označené", 
						"vyplňte prosím povinná pole označená", 
						"please fill out the required fields marked") + " *");
				elm.focus();
				return false;
			}
		}
	}
	if(form.email){
		if(!isValidEmailAddress(form.email.value)){
			alt(ink("skontrolujte prosím Vašu e-mail adresu", 
				"skontrolujte prosím Vaši e-mail adresu", 
    			"validate Your e-mail address"));
			form.email.focus();
			return false;
		}
	}
	return true;
}

function clearDomainStatus(){
	var elm = getElement("resultValidDomain");
	elm.innerHTML = '';
	getPriceDomain();
}

function validDomain(){
	var elmN = getElement("sld");
	if(elmN.value == ""){
		alt(altDomain);
		elmN.focus();
		return;
	}else{
		if(!isValidSLD(elmN.value)){
			alt("doména môže obsahovať malé písmená, čísla a pomlčku ako oddeľovač");
			elmN.focus();
			return;
		}
	}
	var elm = getElement("resultValidDomain");
	elm.innerHTML = ajaxLoader;
	var elmT = getElement("tld");
	var data = "dmn=" + elmN.value + "&tld=" + elmT.value;
	ajxO.setHtml(pathParts + "domain_ajax.php", "validDomain", data);
}

function validDomainHome(){
	var elmN = getElement("sldHome");
	if(elmN.value == ""){
		alt(altDomain);
		elmN.focus();
		return;
	}else{
		var good = /^[a-z\d][a-z\d\-]+[a-z\d]+\.+[a-z]/;
		if(!good.test(elmN.value)){
			alert(ink("Prepáčte, zadajte prosím správny formát domény.\n" + 
					"Môžete použiť malé písmená bez diakritických znamienok, čísla a pomlčky.\n" + 
					"Ako oddelovač domény najvyššej úrovne použite prosím bodku.\n\n" +
					"Napríklad: nejaka-domena.sk", 
					"Promiňte, zadejte prosím správný formát domény.\n"+
					"Můžete použít malá písmena bez diakritických znamének, čísla a pomlčky.\n" +
					"Jako oddělovač domény nejvyšší úrovně použijte prosím tečku.\n\n" +
					"Například: nejaka-domena.cz", 
					"Sorry, please type the correct domian."));
			elmN.focus();
			return;
		}
	}
	var arrayDomain = elmN.value.split(".");
	if(domainsTLD.indexOf(arrayDomain[1]) == -1){
		alt(ink("za bodkou použite prosím jednu z nasledovných domén najvyššej úrovne", 
				"za tečkou použijte prosím jednu z následujících domén nejvyšší úrovně", 
				"Please use one of the following TLDs") + ": \n" + 
				domainsTLD);
		elmN.focus();
		return;
	}
	var data = "dmn=" + arrayDomain[0] + "&tld=" + arrayDomain[1];
	elmN.blur();
	elmN.value = "";
	elmN.className = "valid-domain valid-domain-aj";
	//elmN.style.background = styleAjaxLoader;
	ajxO.setHtml(pathParts + "domain_ajax.php", "validDomainHome", data);
}

function getHostingData(){
	var limits = new Array();
	var counter = 0;
	for(var i=1; i<=3; i++){
		var elmL = getElement("limitCustom" + i);
		limits[i] = elmL.value;
		counter += limits[i];
	}
	var data = "";
	if(counter > 0) data = "lmb=" + limits[1] + "&lmail=" + limits[2] + "&ldb=" + limits[3];
	return data;
}
function getPriceHosting(){
	var elm = getElement("feeHosting");
	elm.value = "";
	elm.style.background = styleAjaxLoader;
	var data = getHostingData();
	if(data == ""){
		elm.style.background = "";
	}else{
		data += "&act=year";
		ajxO.setHtml(pathParts + "hosting_ajax.php", "priceHosting", data);
	}
}

function getPriceCustom(){
	var elmB = getElement("balik0");
	elmB.checked = "checked";
	var elmC = getElement("cena-0");
	elmC.innerHTML = ajaxLoader;
	var data = getHostingData();
	if(data == ""){
		elmC.innerHTML = "";
	}else{
		ajxO.setHtml(pathParts + "hosting_ajax.php", "setPriceCustom", data);
	}
}

function getPriceDomain(){
	var elm = getElement("feeDomain");
	elm.value = "";
	var elmT = getElement("tld");
	if(elmT.value == "") return;
	var elmD = document.getElementById("domainOrder0");
	if(elmD){
		if(elmD.checked) return;
	}
	var elmN = document.getElementById("sld");
	if(elmN){
		if(elmN.value == "") return;
		var data = "dmn=" + elmN.value;
	}else{
		var data = "dmn=progtrendjasurekzilina";
	}
	elm.style.background = styleAjaxLoader;
	data += "&tld=" + elmT.value + "&act=price";
	ajxO.setHtml(pathParts + "domain_ajax.php", "priceDomain", data);
}
function getPriceTLD(){
	var elmT = getElement("tld");
	if(elmT.value == "") return;
	var data = "tld=" + elmT.value + "&act=priceTLD";
	ajxO.setHtml(pathParts + "domain_ajax.php", "priceTLD", data);
}

function updatePrices(){
	var data = "act=update";
	//ajxO.setHtml(pathParts + "hosting_ajax.php", "updatePriceHostings", data);
	//ajxO.setHtml(pathParts + "domain_ajax.php", "updatePriceDomains", data);
}

function getPage(page){
	location.href = root + language + "/" + page;
}

function ink(sk, cz, en){
	if(cz == "") cz = sk;
	switch(language){
		case "sk":
			return sk;
		case "cz":
			return cz;
		case "en":
			return en;
		default:
			return "";
	}
}
function replaceSubstring( fullS, oldS, newS ) {
	var rtn = fullS;
	for ( var i = 0; i < fullS.length; i++ ) {
		if ( rtn.substring( i, i + oldS.length ) == oldS ) {
			rtn = rtn.substring( 0, i ) + newS + rtn.substring( i + oldS.length, rtn.length );
			i--;
		}
	}
	return rtn;
}
function isValidEmailAddress(address){
	var bad = /(^@)|(^\.)/;	// not valid
	var good = /\w+[a-zA-Z0-9\-\.]*\@[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})$/;	// valid
	if ( bad.test( address ) || !good.test( address ) ) { 
  		return false;
	}
	return true;
}
function setArrow( arrow ){
    for( var i=1; i<7; i++ ){
        var elm = document.getElementById( "idArrow" + i );
        if( elm != null ){
            if( i == arrow ){
                elm.className = "list-s";
            }else{
                elm.className = "list-u";
            }
        }
    }
}

//Ajax object
ajxO = new Object();
ajxO.getXMLHTTP = function(){
    var req = false;
    // branch for native XMLHttpRequest object
    if( window.XMLHttpRequest ){
        try {
            req = new XMLHttpRequest();
        } catch(e) {
            req = false;
        }
    // branch for IE/Windows ActiveX version
    } else if( window.ActiveXObject ){
        try {
            req = new ActiveXObject( "Msxml2.XMLHTTP" );
        } catch(e) {
            try {
                req = new ActiveXObject( "Microsoft.XMLHTTP" );
            } catch(e) {
                req = false;
            }
        }
    }
    return req;
};
ajxO.setHtml = function( url, command, data, parameter){
    window.status = "ProgTrend";
    var req = ajxO.getXMLHTTP();
    if( req ){
        req.onreadystatechange = function(){
            if( req.readyState == 4 ){
	            if(command != undefined){
	            	//alert(req.responseText);
	            	if(req.responseText.indexOf("error") != -1){
	            		window.status = req.responseText;
	            	}
	            	switch(command){
	            		case "setPrice":
	            			var elm = getElement("cena-" + parameter);
	            			elm.value = req.responseText;
	            			break;
	            		case "setPriceCustom":
	            			var elm = getElement("cena-0");
	            			elm.innerHTML = req.responseText;
	            			break;
	            		case "validDomain":
	            			var elm = getElement("resultValidDomain");
	            			elm.innerHTML = req.responseText;
	            			break;
	            		case "validDomainHome":
	            			var elm = getElement("sldHome");
	            			var className = "valid-domain valid-domain-";
	            			if(req.responseText.indexOf("VOĽNÁ") != -1){
	            				elm.className = className + "ok";
	            				elm.value = ink("VOĽNÁ", "VOLNÁ", "FREE");
	            			}else if(req.responseText.indexOf("OBSADENÁ") != -1){
	            				elm.className = className + "na";
	            				elm.value = ink("OBSADENÁ", "OBSAZENA", "RESERVED");
	            			}else{
	            				elm.className = className + "f";
	            				elm.value = ink("Overenie zlyhalo.", "Ověření selhalo.", "Verification failed.");
	            			}
	            			break;
	            		case "priceDomain":
	            			var elm = getElement("feeDomain");
	            			elm.style.background = "";
	            			var elmD = document.getElementById("domainOrder0");
	            			if(elmD){
	            				elm.value = "";
	            				if(elmD.checked) return;
	            			}
	            			elm.value = req.responseText;
	            			break;
	            		case "priceHosting":
	            			var elm = getElement("feeHosting");
	            			elm.style.background = "";
	            			elm.value = req.responseText;
	            			break;
	            		case "validLogin":
	            			var elm = getElement("helpLogin");
	            			elm.innerHTML = req.responseText;
	            			break;
	            		case "updatePriceHostings":
	            			window.status += " - Hosting";
	            			break;
	            		case "updatePriceDomains":
	            			window.status += " - Domény";
	            			break;
	            		default:
	            			window.status = req.responseText;
	            	}
	            }
            }
        };
        req.open("POST", url, true);
        if(command != undefined){
        	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
        	req.send(data);
        }else{
        	req.send( "" );
        }
    }
};
ajxO.sendFeedback = function(){
    var frm = document.forms[0];
    var data = "", msgV = "";
    var msgP = "Prepáčte, ";
	var msgC = "Chcete poslať správu do spoločnosti ProgTrend?";
	var msgS = "Vaša správa nebola odoslaná.";
    switch(language){
    	case "cz":
    		msgP = "Promiňte, ";
        	msgC = "Chcete poslat správu do společnosti ProgTrend?";
        	msgS = "Vaše správa nebyla odeslána.";
        	break;
    	case "en":
    		msgP = "Please, ";
    		msgC = "Do you want to send the message to ProgTrend?";
    		msgS = "Your message has not been sent.";
    }
    //var sndV = frm.yourName.value;
    var rplV = frm.yourEmail.value;
    //var sbjV = frm.subject.value;
    var bdyV = frm.body.value;
    var cptV = frm.codeValue.value;
    if(cptV == ""){
    	msgV = msgP + ink("zadajte prosím kód z obrázku!", "zadejte prosím kód z obrázku", "type the image code.");
    	frm.codeValue.focus();
    }
    if((bdyV) == ""){
    	msgV = msgP + ink("napíšte prosím text správy!", "napište prosím text správy!", "type a text.");
    	frm.body.focus();
    }
    if(!isValidEmailAddress(rplV)){
    	msgV = msgP + ink("skontrolujte prosím Vašu e-mail adresu!", 
    		"skontrolujte prosím Vaši e-mail adresu!", 
    		"validate Your e-mail address.");
    	frm.yourEmail.focus();
    }
    if(msgV == ""){
    	if(!confirm(msgC)){
    		window.status = msgS;
    		return false;
    	}
    	var elmImgF = document.getElementById("ajax-loader-f");
    	if(elmImgF) elmImgF.style.visibility = "visible";
    	//data += "snd=" + sndV;
    	data += "rpl=" + rplV;
    	//data += "&sbj=" + sbjV;
    	data += "&bdy=" + bdyV;
    	data += "&cpt=" + cptV;
    	var req = ajxO.getXMLHTTP();
    	if( req ){
    		req.onreadystatechange = function(){
    			if( req.readyState == 4 ){
    				if(elmImgF) elmImgF.style.visibility = "hidden";
    				alert( req.responseText );
    				frm.codeValue.value = "";
    				getNewCode();
    			}
    		};
    		req.open("POST", pathPages + "feedback_result.php?lng=" + language, true);
    		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
    		req.send( data );
    	}
    }else{
    	alert(msgV);	
    }
};

var orderNewCode = 0;

function getNewCode(){
	var elmCode = document.forms[0].codeValue;
	if(elmCode) elmCode.value = "";
	var elmImg = document.getElementById("img-code");
	if(elmImg){
		orderNewCode += 1;
		elmImg.src = root+"captcha_img.php?ord=" + orderNewCode;
	}
}



/** TOOLS */

function getElement(id){
	var elm = id == "" ? null : document.getElementById(id);
	if(elm == null){
		window.status = "Exception: Element '" + id + "' is null.";
		return;
	}else{
		return elm;
	}
}
function alt(msg){
	var sorry = ink("Prepáčte", "Promiňte", "Sorry");
	alert(sorry + ", " + msg + ".");
}

function setFocus(id){
	var elm = document.getElementById(id);
	if(elm) elm.focus();
}

Array.prototype.exists = function(o) {
	for(var i = 0; i < this.length; i++){
	   if(this[i] === o) return true;
	}
	return false;
};

function isValidEmailAddress(address){
	var bad = /(^@)|(^\.)/;
	var good = /\w+[a-zA-Z0-9\-\.]*\@[a-z0-9\-\.]+\.[a-z]{2,4}$/;
	if ( bad.test( address ) || !good.test( address ) ) { 
  		return false;
	}
	return true;
}

function isValidSLD(sld){
	var good = /^[a-z\d][a-z\d\-]+[a-z\d]$/;
	if(good.test(sld)){
		return true;
	}
	return false;
}

