/*global GetXmlHttpObject: false, numberFormat: false, getKey: false */

var xmlHttp = null;

function Repr() {
}

Repr.dataChanged = function(elem,site,loader,rel_callMode,rel_pData,rel_elem,lang) {
	switch (loader) {
		case 1:
			document.getElementById(elem).innerHTML = "<center><img src='" + site + "/img/loader_kit.gif' border='0' class='image' /></center>";
            break;
		default:
			document.getElementById(elem).innerHTML = "";
	}

	if (xmlHttp.readyState === 4) {
		if(xmlHttp.status === 200) {
			var output = xmlHttp.responseText;

			document.getElementById(elem).innerHTML = output;
		}

		if (rel_callMode && rel_pData && rel_elem && lang) {
			Repr.reprCall(site,rel_callMode,rel_pData,rel_elem,lang);
		}
	}
};

Repr.dataCall = function(site,dataMode,pData,elem,lang,rel_callMode,rel_pData,rel_elem) {
	xmlHttp=GetXmlHttpObject();

	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	}

	var url = site + "/ajax/aj_repr.php";

	url = url + "?k=" + lang;
	url = url + "&data_mode=" + dataMode;

	if (pData) {
		url = url + "&" + pData;
	}

	url = url + "&sid=" + Math.random();

	xmlHttp.onreadystatechange = function() {
        Repr.dataChanged(elem,site,1,rel_callMode,rel_pData,rel_elem,lang);
    };
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
};

Repr.reprChanged = function(elem,site,loader,rel_dataMode,rel_pData,rel_elem,lang) {
	switch (loader) {
		case 1:
			document.getElementById(elem).innerHTML = "<center><img src='" + site + "/img/loader_kit.gif' border='0' class='image' /></center>";
		break;
		default:
			document.getElementById(elem).innerHTML = "";
	}

	if (xmlHttp.readyState === 4) {
		if (xmlHttp.status === 200) {
			var output = xmlHttp.responseText;

			document.getElementById(elem).innerHTML = output;
		}

		if (rel_dataMode && rel_pData && rel_elem && lang) {
			Repr.dataCall(site,rel_dataMode,rel_pData,rel_elem,lang);
		}
	}
};

Repr.reprCall = function(site,callMode,pData,elem,lang,rel_dataMode,rel_pData,rel_elem) {
	xmlHttp=GetXmlHttpObject();
	
	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	} 

	var url = site + "/ajax/aj_repr.php";
	
	url = url + "?k=" + lang;
	url = url + "&call_mode=" + callMode;

	if (pData) {
		url = url + "&" + pData;
	}

	url = url + "&sid=" + Math.random();
	
	xmlHttp.onreadystatechange = function() {Repr.reprChanged(elem,site,0,rel_dataMode,rel_pData,rel_elem,lang);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
};

function stateChanged(elem, loader) {
	switch(loader) {
		case 1:
			elem.innerHTML = "<center><img src='http://www.koduleidja.ee/img/loader_kit.gif' border='0' /></center>";
		    break;
		case 2:
			elem.innerHTML = "<center><img src='http://www.koduleidja.ee/img/loader_flower.gif' border='0' /></center>";
		    break;
		default:
			elem.innerHTML = "";
	}

	if (xmlHttp.readyState === 4) {
		if(xmlHttp.status === 200) {
			var output = xmlHttp.responseText;
			elem.innerHTML = output;
		}
	}
}

function findLinksBoxStatus(site,operation,lang,elem,reoId,blockUin,blockUiv) {
	document.getElementById(elem).innerHTML = "";

	if (!reoId || blockUin.length === 0 || blockUiv.length === 0) {
		document.getElementById(elem).innerHTML = "";

		return;
	}

	xmlHttp = GetXmlHttpObject();

	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	}

	var url = site + "/ajax/aj_find_links.php";

	url = url + "?op=" + operation;
	url = url + "&k=" + lang;
	url = url + "&reo_id=" + reoId;
	url = url + "&block_uin=" + blockUin;
	url = url + "&block_uiv=" + blockUiv;
	url = url + "&sid=" + Math.random();
	
	xmlHttp.onreadystatechange = function() {
        stateChanged(elem,site,1);
    };
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function findLinksInitPos(site,operation,lang,elem,reoId,blockUin) {
	document.getElementById(elem).innerHTML = "";

	if (!reoId || blockUin.length === 0) {
		document.getElementById(elem).innerHTML = "";

		return;
	}

	xmlHttp = GetXmlHttpObject();

	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	}

	var url = site + "/ajax/aj_find_links.php";

	url = url + "?op=" + operation;
	url = url + "&k=" + lang;
	url = url + "&reo_id=" + reoId;
	url = url + "&init_uin=" + blockUin;
	url = url + "&sid=" + Math.random();
	
	xmlHttp.onreadystatechange = function() {stateChanged(elem,site,1);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function objCoordsUpd(site,operation,lang,indexNo,objId,objData,objCoordX,objCoordY,elem) {
	if (!objId || objData.length === 0 || isNaN(objCoordX) || isNaN(objCoordY)) {
		alert('error coord');
		return;
	}

	xmlHttp = GetXmlHttpObject();

	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	}

	var url = site + "/ajax/aj_varia.php";

	url = url + "?op=" + operation;
	url = url + "&k=" + lang;
	url = url + "&index_no=" + indexNo;
	url = url + "&obj_id=" + objId;
	url = url + "&obj_data=" + objData;
	url = url + "&obj_coord_x=" + objCoordX;
	url = url + "&obj_coord_y=" + objCoordY;
	url = url + "&sid=" + Math.random();
	
	xmlHttp.onreadystatechange = function() {stateChanged(elem,site,1);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function setReoOffer(lang, reo_id, elem) {
	xmlHttp = GetXmlHttpObject();

	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	}

    var qs = false;
    if (elem.id.indexOf("qs_") >= 0) {
        qs = true;
    }

    var offerStatus = elem.checked;

    elem = elem.parentNode;
    elem.innerHTML = "";

	var url = "http://www.koduleidja.ee/ajax/aj_varia.php?";
    
    if (qs) {
        url = url + "op=advert_is_qs_offer";
    } else {
        url = url + "op=advert_is_offer";
    }

	url = url + "&k=" + lang;
	url = url + "&reo_id=" + reo_id;
	url = url + "&offer_status=" + offerStatus;
	url = url + "&sid=" + Math.random();
	
	xmlHttp.onreadystatechange = function() {stateChanged(elem, 0);};
	xmlHttp.open("GET", url, true);
	xmlHttp.send(null);
}

function listReoOffersByType(site,operation,lang,currentType,sqlBool,userId,elem) {
	if (document.getElementById(elem) === null) {
		return;
	}
	
	document.getElementById(elem).innerHTML = "";
	
	xmlHttp = GetXmlHttpObject();
	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	}

	var url = site + "/ajax/aj_varia.php?op=" + operation + "&k=" + lang + "&advert_offer_case_type=" + currentType +
        "&advert_offer_sql_bool=" + sqlBool + "&advert_offer_user_id=" + userId + "&sid=" + Math.random();
	
	xmlHttp.onreadystatechange = function() {stateChanged(elem,site,2);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function checkUserData(site,operation,lang,dataKey,dataValue,elem) {
	document.getElementById(elem).innerHTML = "";

	if (!dataKey || !dataValue) {
		document.getElementById(elem).innerHTML = "";
		return;
	}

	xmlHttp = GetXmlHttpObject();

	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	}

	var url = site + "/ajax/aj_varia.php";

	url = url + "?op=" + operation;
	url = url + "&k=" + lang;
	url = url + "&data_key=" + dataKey;
    url = url + "&data_value=" + dataValue;
	url = url + "&sid=" + Math.random();

	xmlHttp.onreadystatechange = function() {stateChanged(elem,site,0);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

// -- calc loan
function monthlyPayment(PV, i, N) {
	var interestRate = parseFloat(i / 12 / 100);
	var ix = 1 + parseFloat(interestRate);

	ix = Math.pow(ix, N);

	var PMT = (PV * ix * interestRate) / (ix -1);

	return Math.round(PMT * 100) / 100;
}

function calcLoanStateChanged(elemDeposit,elemLoanValue,elemMPayment,dataPrice,dataPayment,dataDeadline,dataInterest) {
	if (xmlHttp.readyState === 4) {
		if(xmlHttp.status === 200) {
			var selfFinance     = dataPayment / 100 * dataPrice;
			var loanValue   = dataPrice - selfFinance;

			var loanLength  = dataDeadline * 12;
			var mPayment    = monthlyPayment(loanValue, dataInterest, loanLength);

			document.getElementById(elemMPayment).innerHTML  = numberFormat(Math.round(Math.ceil(mPayment))) + " EUR";
			document.getElementById(elemMPayment + '_mirror').innerHTML = numberFormat(Math.round(Math.ceil(mPayment))) + " EUR";
		}
	}
}

function setCalcLoan(site,operation,dataInputPriceId,dataInputPaymentId,dataInputDeadlineId,dataInputInterestId) {
	document.getElementById('calc_output_m_payment').innerHTML = "";
	document.getElementById('calc_output_m_payment_mirror').innerHTML = "-";

	var dataPrice = parseInt(document.getElementById(dataInputPriceId).value.split(' ').join(''), 10);
	var dataPayment  = parseInt(document.getElementById(dataInputPaymentId).value, 10);
	var dataDeadline = parseInt(document.getElementById(dataInputDeadlineId).value, 10);
	var dataInterest = parseFloat(document.getElementById(dataInputInterestId).value.split(',').join('.'), 10);

	if (!dataPrice || isNaN(dataPrice) || dataPrice <= 0 || dataPrice > 99999999) {
		document.getElementById(dataInputPriceId).style.borderColor = '#ff6600';
	
		return;
	} else {
		document.getElementById(dataInputPriceId).style.borderColor = '';
	}
	
	if (!dataInterest || isNaN(dataInterest) || dataInterest <= 0 || dataInterest > 100) {
		document.getElementById(dataInputInterestId).style.borderColor = '#ff6600';
	
		return;
	} else {
		document.getElementById(dataInputInterestId).style.borderColor = '';
	}
	
	if (!dataPayment || isNaN(dataPayment) || dataPayment < 0 || dataPayment > 99) {
		document.getElementById(dataInputPaymentId).value = '';
		
		dataPayment = 0;
	}

	xmlHttp = GetXmlHttpObject();

	if (xmlHttp ===null) {
		alert ("Your browser does not support AJAX!");
		return;
	}

	var url = site + "/ajax/aj_varia.php";

	url = url + "?op=" + operation;
	url = url + "&calc_input_price=" + dataPrice;
	url = url + "&calc_input_payment=" + dataPayment;
	url = url + "&calc_input_deadline=" + dataDeadline;
	url = url + "&calc_input_interest=" + dataInterest;
	url = url + "&sid=" + Math.random();

	xmlHttp.onreadystatechange = function() {
        calcLoanStateChanged(
            'calc_output_deposition',
            'calc_output_loan_value',
            'calc_output_m_payment',
            dataPrice,
            dataPayment,
            dataDeadline,
            dataInterest
        );
    };
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function CalcPriceStateChanged(elem,bId,loader) {
	document.getElementById(elem).innerHTML = "<center>" + decodeURIComponent(loader) + "</center>";

	document.getElementById(bId).disabled = true;
	document.getElementById(bId).className = 'button_disabled';

	if (xmlHttp.readyState === 4) {
		if(xmlHttp.status === 200) {
			var output = xmlHttp.responseText;

			if (output === "error_regular_reo_address") {
				// -- current error
				document.getElementById('reo_address').style.borderColor = '#ff6600';
				document.getElementById('reo_address').focus();

				// -- stripping other errors
				document.getElementById('calc_price_house_nr').style.borderColor = '';

				// -- output
				document.getElementById(elem).innerHTML = "";
			} else if (output === "error_regular_house_nr") {
				// -- current error
				document.getElementById('calc_price_house_nr').style.borderColor = '#ff6600';
				document.getElementById('calc_price_house_nr').focus();

				// -- stripping other errors
				document.getElementById('reo_address').style.borderColor = '';

				// -- output
				document.getElementById(elem).innerHTML = "";
			} else {
				// -- stripping error borders
				document.getElementById('reo_address').style.borderColor = '';
				document.getElementById('calc_price_house_nr').style.borderColor = '';

				// -- output
				document.getElementById(elem).innerHTML = output;
			}

			document.getElementById(bId).disabled = false;
			document.getElementById(bId).className = 'button_search';
		}
	}
}

// -- calc price
function setCalcPrice(site,operation,lang,dataStreetId,dataM2countId,dataClsId,dataHouseNrId,dataApartCountId,bId,elem,loader) {
	document.getElementById(elem).innerHTML = "";

	var dataStreet      = document.getElementById(dataStreetId).value.toUpperCase();
	var dataM2count     = parseFloat(document.getElementById(dataM2countId).value.split(',').join('.'));
	var dataCls         = document.getElementById(dataClsId).value;
	var dataHouseNr     = document.getElementById(dataHouseNrId).value;
	var dataApartCount  = parseInt(document.getElementById(dataApartCountId).value, 10);
	
	if (!dataStreet || !dataM2count || !dataHouseNr || !dataApartCount) {
		return;
	}
	
	xmlHttp = GetXmlHttpObject();

	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	}

	var url = site + "/ajax/aj_varia.php";

	url = url + "?op=" + operation;
	url = url + "&k=" + lang;
	url = url + "&calc_price_street=" + encodeURIComponent(dataStreet);
	url = url + "&calc_price_m2_count=" + encodeURIComponent(dataM2count);
	url = url + "&calc_price_cls=" + dataCls;
	url = url + "&calc_price_house_nr=" + encodeURIComponent(dataHouseNr);
	url = url + "&calc_price_apart_count=" + dataApartCount;
	url = url + "&sid=" + Math.random();
	
	xmlHttp.onreadystatechange = function() {CalcPriceStateChanged(elem,bId,loader);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function listLocalAddressesStateChanged(loader,elem) {
	if (loader.length > 0) {
		document.getElementById(elem).style.display = "";
		document.getElementById(elem).innerHTML = loader;
	}

	if (xmlHttp.readyState === 4) {
		if(xmlHttp.status === 200) {
			var output = xmlHttp.responseText;

			output = output.replace(/\n/g, "");
			output = output.replace(/\t/g, "");
			output = output.replace(/\r/g, "");

			switch (output) {
				case "":
				case "0":
					document.getElementById(elem).style.display = "none";
                    break;
				default:
					document.getElementById(elem).style.display = "";
					document.getElementById(elem).innerHTML = output;
			}
		}
	}
}

// -- list addresses from local db
function listLocalAddressesProcess(site,operation,lang,loader,hint,elem,e) {
	document.getElementById(elem).style.display = "none";
	document.getElementById(elem).innerHTML = "";
	
	var hintDecoded = decodeURIComponent(hint);
	
	if (hint.length < 2 || hintDecoded.match(/\d/g) || hintDecoded.match(/[(!|@|#|$|%|\^|*|(|_|)|-|=|+|&|<|>)]/g) || getKey(e) === 9 || getKey(e) === 13 || getKey(e) === 27) {
		document.getElementById(elem).style.display = "none";
		document.getElementById(elem).innerHTML = "";
		
		return;
	}
	
	xmlHttp = GetXmlHttpObject();

	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	}

	var url = site + "/ajax/aj_varia.php";

	url = url + "?op=" + operation;
	url = url + "&k=" + lang;
	url = url + "&reo_address=" + hint;
	url = url + "&sid=" + Math.random();

	xmlHttp.onreadystatechange = function() {listLocalAddressesStateChanged(loader,elem);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function setAdvertImgForward(site,operation,lang,reoId,imgId,elem,sMode) {
	document.getElementById(elem).innerHTML = "";
	
	if (reoId <= 0 || imgId <= 0) {
		return;
	}

	xmlHttp = GetXmlHttpObject();

	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	}

	var url = site + "/ajax/aj_varia.php";

	url = url + "?op=" + operation;
	url = url + "&k=" + lang;
	url = url + "&reo_id=" + reoId;
	url = url + "&img_id=" + imgId;
	url = url + "&s_mode=" + sMode;
	url = url + "&sid=" + Math.random();
	
	xmlHttp.onreadystatechange = function() {stateChanged(elem,site,2);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function stateChangedCalendar(elemBox, site) {
	document.getElementById(elemBox).style.display = "";
	document.getElementById(elemBox).innerHTML = "<center><img src='" + site + "/img/loader_flower.gif' border='0' /></center>";

	if (xmlHttp.readyState === 4) {
		if(xmlHttp.status === 200) {
			var output = xmlHttp.responseText;

			document.getElementById(elemBox).innerHTML = output;
		}
	}
}

// -- process: calendar
function callCalendar(site,operation,lang,elemBox,cDate,cElem) {
	if(document.getElementById(elemBox).style.display === "") {
		document.getElementById(elemBox).style.display = "none";
		document.getElementById(elemBox).innerHTML = "";

		return;
	}

	if(!cElem) {
		document.getElementById(elemBox).style.display = "none";
		document.getElementById(elemBox).innerHTML = "";

		return;
	}

	document.getElementById(elemBox).style.display = "none";
	document.getElementById(elemBox).innerHTML = "";

	xmlHttp = GetXmlHttpObject();
	
	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	var url = site + "/ajax/aj_varia.php";
	
	url = url + "?op=" + operation;
	url = url + "&k=" + lang;
	url = url + "&elembox=" + elemBox;
	url = url + "&cdate=" + cDate;
	url = url + "&celem=" + cElem;
	url = url + "&sid=" + Math.random();

	xmlHttp.onreadystatechange = function() {stateChangedCalendar(elemBox, site);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function procCalendar(site,operation,lang,elemBox,cDate,cElem) {
	if (cElem === "") {
		document.getElementById(elemBox).style.display = "none";
		document.getElementById(elemBox).innerHTML = "";

		return;
	}

	document.getElementById(elemBox).style.display = "";

	xmlHttp = GetXmlHttpObject();

	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	var url = site + "/ajax/aj_varia.php";
	
	url = url + "?op=" + operation;
	url = url + "&k=" + lang;
	url = url + "&elembox=" + elemBox;
	url = url + "&cdate=" + cDate;
	url = url + "&celem=" + cElem;
	url = url + "&sid=" + Math.random();

	xmlHttp.onreadystatechange = function() {stateChangedCalendar(elemBox, site);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function stateChangedPackageDesc(elemBox,site,w,h) {
	document.getElementById(elemBox).style.display = "block";
	document.getElementById(elemBox).innerHTML = "<center><img src='" + site + "/img/loader_kit.gif' border='0' /></center>";

	if (xmlHttp.readyState === 4) {
		if(xmlHttp.status === 200) {
			var output = xmlHttp.responseText;

			document.getElementById(elemBox).style.position = "absolute";
			document.getElementById(elemBox).style.left = ((screen.width - w) / 2) + "px";
			document.getElementById(elemBox).style.top = "auto";
			document.getElementById(elemBox).style.width = w + "px";
			document.getElementById(elemBox).style.height = h + "px";

			document.getElementById(elemBox).innerHTML = output;
		}
	}
}

function callPackageDesc(site,operation,lang,elemBox,pkgId,w,h) {
	document.getElementById(elemBox).style.display = "none";
	document.getElementById(elemBox).innerHTML = "";

	xmlHttp = GetXmlHttpObject();
	
	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	var url = site + "/ajax/aj_varia.php";
	
	url = url + "?op=" + operation;
	url = url + "&k=" + lang;
	url = url + "&package_id=" + pkgId;
	url = url + "&sid=" + Math.random();

	xmlHttp.onreadystatechange = function() {stateChangedPackageDesc(elemBox,site,w,h);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function callCTboardContent(site,operation,lang,elemBox,boardId,w,h) {
	document.getElementById(elemBox).style.display = "none";
	document.getElementById(elemBox).innerHTML = "";

	xmlHttp = GetXmlHttpObject();
	
	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	var url = site + "/ajax/aj_varia.php";
	
	url = url + "?op=" + operation;
	url = url + "&k=" + lang;
	url = url + "&board_id=" + boardId;
	url = url + "&layer_id=" + elemBox;
	url = url + "&sid=" + Math.random();

	xmlHttp.onreadystatechange = function() {stateChangedPackageDesc(elemBox,site,w,h);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

// -- handle response: procInvoiceBL
function stateChangedInvoiceBL(site,bank) {
	if (xmlHttp.readyState === 4) {
		if(xmlHttp.status === 200) {
			var output = xmlHttp.responseText;

			output = output.replace(/\n/g, "");
			output = output.replace(/\t/g, "");
			output = output.replace(/\r/g, "");

			switch (output) {
				case "success":
					switch (bank) {
						case "hp":
							document.BL_HP_form.submit();
                            break;
						case "eyp":
							document.BL_EYP_form.submit();
                            break;
						case "sampo":
							document.BL_SAMPO_form.submit();
                            break;
						case "nordea":
							document.BL_NORDEA_form.submit();
                            break;
						default:
							alert(output);
					}
                    break;
				default:
					alert(output);
			}
		}
	}
}

// -- process: generating invoice for banklink
function procInvoiceBL(site,operation,lang,bank) {
	xmlHttp = GetXmlHttpObject();

	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	var url = site + "/ajax/aj_varia.php";
	
	url = url + "?op=" + operation;
	url = url + "&k=" + lang;
	url = url + "&sid=" + Math.random();

	xmlHttp.onreadystatechange = function() {stateChangedInvoiceBL(site,bank);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function stateChangedBL(elem,site) {
	document.getElementById(elem).innerHTML = "<img src='" + site + "/img/loader_flower.gif' border='0' />";

	var pkgs = document.getElementsByName('package_id');

    var i = null;
	for (i = 0; i < pkgs.length; i++) {
		pkgs[i].disabled = true;
	}

	if (xmlHttp.readyState === 4) {
		if(xmlHttp.status === 200) {
			var output = xmlHttp.responseText;

			document.getElementById(elem).innerHTML = output;

			for (i = 0; i < pkgs.length; i++) {
				pkgs[i].disabled = false;
			}
		}
	}
}

// -- process: banklinks
function procBL(site,operation,lang,elemBox,pkgQty,pkgId,reoId) {
	if(pkgQty === 0 || !pkgId) {
		return;
	}

	document.getElementById('BL_info').style.display = "";
	document.getElementById(elemBox).innerHTML = "";

	xmlHttp = GetXmlHttpObject();

	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	var url = site + "/ajax/aj_varia.php";
	
	url = url + "?op=" + operation;
	url = url + "&k=" + lang;
	url = url + "&package_quantity=" + pkgQty;
	url = url + "&package_id=" + pkgId;
	
	if (reoId) {
		url = url + "&reo_id=" + reoId;
	}
	
	url = url + "&sid=" + Math.random();

	xmlHttp.onreadystatechange = function() {stateChangedBL(elemBox, site);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

// -- process: package free
function procFreePkg(site,operation,lang,elemBox,pkgId) {
	if (!pkgId) {
		return;
	}
	
	document.getElementById('BL_info').style.display = "none";
	document.getElementById(elemBox).innerHTML = "";

	xmlHttp = GetXmlHttpObject();

	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	var url = site + "/ajax/aj_varia.php";
	
	url = url + "?op=" + operation;
	url = url + "&k=" + lang;
	url = url + "&package_id=" + pkgId;
	url = url + "&sid=" + Math.random();

	xmlHttp.onreadystatechange = function() {stateChanged(elemBox, site);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function stateChangedMediaChannelDesc(elemBox, site, w, h) {
	document.getElementById(elemBox).style.display = "";
	document.getElementById(elemBox).innerHTML = "<center><img src='" + site + "/img/loader_kit.gif' border='0' /></center>";

	if (xmlHttp.readyState === 4) {
		if(xmlHttp.status === 200) {
			var output = xmlHttp.responseText;

			document.getElementById(elemBox).style.position = "absolute";
			document.getElementById(elemBox).style.left = ((screen.width - w) / 2) + "px";
			document.getElementById(elemBox).style.top = "auto";
			document.getElementById(elemBox).style.width = w + "px";
			document.getElementById(elemBox).style.height = h + "px";

			document.getElementById(elemBox).innerHTML = output;
		}
	}
}

function callMediaChannelDesc(site,operation,lang,elemBox,chId,w,h) {
	if (document.getElementById(elemBox).style.display === "") {
		document.getElementById(elemBox).style.display = "none";
		document.getElementById(elemBox).innerHTML = "";

		return;
	}

	document.getElementById(elemBox).style.display = "none";
	document.getElementById(elemBox).innerHTML = "";


	xmlHttp = GetXmlHttpObject();
	
	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	var url = site + "/ajax/aj_varia.php";
	
	url = url + "?op=" + operation;
	url = url + "&k=" + lang;
	url = url + "&channel_id=" + chId;
	url = url + "&sid=" + Math.random();

	xmlHttp.onreadystatechange = function() {stateChangedMediaChannelDesc(elemBox, site, w, h);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

// -- handle response: regions new style
function stateChangedDesktopRegionOptions(elemBox,site) {
	if (xmlHttp.readyState === 4) {
		if(xmlHttp.status === 200) {
			var output = xmlHttp.responseText;

			document.getElementById(elemBox).innerHTML = output;
		}
	}
}

// -- process: regions new style
function desktopRegionOptions(site,file,operation,lang,elemBox,hintRegionId) {
	if (hintRegionId === null || hintRegionId.length === 0) {
		hintRegionId = 0;
	}

	xmlHttp = GetXmlHttpObject();

	if (xmlHttp === null) {
		alert ("Your browser does not support AJAX!");
		return;
	}

	var url = site + "/ajax/" + file;

	url = url + "?op=" + operation;
	url = url + "&k=" + lang;
	url = url + "&sid=" + Math.random();

	var params = "hint_region_id=" + hintRegionId;

	xmlHttp.open("POST",url,true);

	xmlHttp.onreadystatechange = function() {stateChangedDesktopRegionOptions(elemBox,site);};

	xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	xmlHttp.send(params);
}

