﻿// JScript File

function getYourPrice(adSpacePriceProfit, val, destControlId, cur, prec, incmark) {

	var yourPrice = clearNumber(val,cur);
	yourPrice = yourPrice * adSpacePriceProfit / 100;	
	var yourPriceFormat = formatCurrency(yourPrice, cur, prec, incmark);	
	document.getElementById(destControlId).innerHTML = yourPriceFormat;
	return;
}

function clearNumber(num, cur) {

	if (cur === 'cs-CZ') {
		num = num.toString().replace(/[^\d\-|\,\.]/g, '');
		num = num.replace('\,', '\.');
	}
	if (cur === 'en-US') {
		num = num.toString().replace(/\$|\,/g, '');
	}
	if (isNaN(num))
		num = "0";

	return num;		
}


function formatInteger(num, cur, prec, incmark) {

    var mark = '';

    //Konstanta pro zvetseni cisla z duvodu zaokrouhleni
    var precDec = 1;
    if (prec > 0) {
    	precDec = Math.pow(10, prec);
    }

    if (cur === 'cs-CZ') {
        if (incmark == 1)
            mark = ' Kč';

        //Vycisti vstup
        num = clearNumber(num, cur);
        //Je kladne cislo
        sign = (num == (num = Math.abs(num)));

        //Zaokrouhleni desetinneho cisla
        num = Math.floor(num * precDec + 0.50000000001);
        cents = num % precDec;
        num = Math.floor(num / precDec).toString();

        //Formatovani
        if (prec > 0) {
            cents = padleft(cents, "0", prec);
        }

        for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
            num = num.substring(0, num.length - (4 * i + 3)) + ',' +
          num.substring(num.length - (4 * i + 3));
        var strnum = num.split('\,');
        strnum = strnum.join(' ');

        if (prec > 0)
            return (((sign) ? '' : '-') + strnum);
        else
            return (((sign) ? '' : '-') + strnum);

    }
    if (cur === 'en-US') {
        if (incmark == 1)
            mark = '$';

        //Vycisti vstup
        num = clearNumber(num, cur);

        //Je kladne cislo
        sign = (num == (num = Math.abs(num)));

        //Zaokrouhleni desetinneho cisla
        num = Math.floor(num * precDec + 0.50000000001);
        cents = num % precDec;
        num = Math.floor(num / precDec).toString();

        //Formatovani
        if (prec > 0) {
            cents = padleft(cents, "0", prec);
        }
        for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
            num = num.substring(0, num.length - (4 * i + 3)) + ',' +
  num.substring(num.length - (4 * i + 3));

        if (prec > 0)
            return (((sign) ? '' : '-') + num);
        else
            return (((sign) ? '' : '-') + num);
    }
    return num;
}



function formatCurrency(num, cur, prec, incmark) {

	var mark = '';

	//Konstanta pro zvetseni cisla z duvodu zaokrouhleni
	var precDec = 1;
	if (prec > 0) {
		precDec = Math.pow(10, prec);
	}
	
	if (cur === 'cs-CZ') {
		if (incmark == 1)
			mark = ' Kč';

		//Vycisti vstup
		num = clearNumber(num,cur);
		//Je kladne cislo
		sign = (num == (num = Math.abs(num)));

		//Zaokrouhleni desetinneho cisla
		num = Math.floor(num * precDec + 0.50000000001);
		cents = num % precDec;
		num = Math.floor(num / precDec).toString();

		//Formatovani
		if (prec > 0) {
			cents = padleft(cents, "0", prec);
		}
	
		for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
			num = num.substring(0, num.length - (4 * i + 3)) + ',' +
          num.substring(num.length - (4 * i + 3));
		var strnum = num.split('\,');
		strnum = strnum.join(' ');

		if (prec > 0)
			return (((sign) ? '' : '-') + strnum + ',' + cents + mark);
		else 
			return (((sign) ? '' : '-') + strnum + mark);
		
	}
	if (cur === 'en-US') {
		if (incmark == 1)
			mark = '$';

		//Vycisti vstup
		num = clearNumber(num,cur);
		
		//Je kladne cislo
		sign = (num == (num = Math.abs(num)));
		
		//Zaokrouhleni desetinneho cisla
		num = Math.floor(num * precDec + 0.50000000001);
		cents = num % precDec;
		num = Math.floor(num / precDec).toString();
		
		//Formatovani
		if (prec > 0) {
			cents = padleft(cents, "0", prec);
		}
		for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
			num = num.substring(0, num.length - (4 * i + 3)) + ',' +
  num.substring(num.length - (4 * i + 3));

		if (prec > 0)
			return (((sign) ? '' : '-') + mark + num + '.' + cents);
		else
		    return (((sign) ? '' : '-') + mark + num);
	}
	return num;
}

function padleft(val, ch, num) { 
	var re = new RegExp(".{" + num + "}$");
	var pad = ""; 
	if (!ch) ch = " ";
	do { 
		pad += ch;
	}
	while(pad.length < num);return re.exec(pad + val); 
}


//Potvrzeni Last minute ceny, jejiz 2 nasobek by nemel byt mensi nez master cena
//valMasterPrice - hodnota master ceny
//valLastMinutePrice - hodnota last minute ceny
//destControlId - id kontrolu kam
//cur - kultura cs-CZ / en-US
//prec - pocet desetinnych mist 0-n
//incmark - 1 ma obsahovat znacku meny (Kc/$), 0 kdyz nema
//alertMsg - upozorneni hodnota mimo rozsah
//confirmMsg - potvrzovaci hlaska
function confirmLastMinute(elementRef,valMasterPrice, valLastMinutePrice, destControlId, cur, prec, incmark, alertMsg, confirmMsg) {

	if (elementRef.value == elementRef.previousValue) {
		return true;
	}

	
	//Veme cistou hodnotu
	var masterPrice = parseFloat(clearNumber(valMasterPrice, cur));
	var lastMinutePrice = parseFloat(clearNumber(valLastMinutePrice, cur));

	if (isNaN(lastMinutePrice) | lastMinutePrice == 0) {
		if (elementRef.value != '') {
			elementRef.value = '';
		}
		return true;
	}

	//Pokud lastminute cena je mensi nez 0, nebo je vetsi nez (nebo rovna) jak master cena
	if (lastMinutePrice <= 0 | masterPrice <= lastMinutePrice) {
		window.alert(alertMsg);
		elementRef.value = '';
		elementRef.focus();
		return false;
	}

	//Pokud je lastminute cena vyrazne nizsi nez master cena
	if (lastMinutePrice * 2 < masterPrice) {
		var confirmResponse = window.confirm(confirmMsg);
		if (!confirmResponse) {
			elementRef.value = '';
			elementRef.focus();
			return false;
		}
	}

	//Formatuje hodotu vystupu a nasetuje do controlu
	var priceFormat = formatCurrency(lastMinutePrice, cur, prec, incmark);
	elementRef.value = priceFormat;
	elementRef.previousValue = priceFormat;
	return true;
}



function confirmMasterPrice(elementRef, elementProfitID, cur, prec, incmark, notpossibleMsg, continueMsg, ClientID, HasSaleability) {

    var Value = parseFloat(clearNumber(elementRef.value, cur));
    var PreviousValue = parseFloat(clearNumber(elementRef.previousValue, cur));

	//Stejnou cenu pouze naformátuje
    if (PreviousValue == Value) {
        elementRef.value = formatCurrency(elementRef.value, cur, prec, incmark);
        return true;
    }

    if (PreviousValue >= Value && (HasSaleability == 'False' || HasSaleability == 'false' || HasSaleability == '0')) {
    		alert(notpossibleMsg);
    		elementRef.value = formatCurrency(elementRef.previousValue, cur, prec, incmark);
    		elementRef.focus();
    		return false;
    }

    var confirmResponse = window.confirm(continueMsg);
    if (confirmResponse) {
    	elementRef.value = formatCurrency(elementRef.value, cur, prec, incmark);
    	return true;    
    }
    else {
    	var elem = document.getElementById(elementProfitID)
    	if (elem.value != "")
			elem.innerHTML = elementRef.previousYourProfit;    
        elementRef.value = formatCurrency(elementRef.previousValue,cur,prec,incmark);
        elementRef.focus();
        return false;
    }
}

function checkItem(sender, args, controlId) {
	var ret = null;
	var aControls = document.getElementsByTagName("input");
	var isChecked = false;
	if (aControls) {
		for (var i = 0; i < aControls.length; i++) {
			if (aControls[i].id.lastIndexOf(controlId + '_') > -1
			    && aControls[i].type == "checkbox") {

				if (aControls[i].checked) {
					isChecked = true;
				}
			}
		}
	}
	args.IsValid = isChecked;
}

function confirmNext(msg, controlId) {
	if (confirm(msg)) {
		document.getElementById(controlId).click();
	}
}

function buyImpression(sender, senderValue, impression, clientID, cpt, cur, prec, incmark, impValue, currValue, impcurr, oldImp, oldPrice, table, allImp, allPrice) {
    var buyImpression = sender;
    var Impression = clearNumber(impression,cur);
    var buyCurrency = document.getElementById(clientID);
    var cPT = parseFloat(clearNumber(cpt, cur));

    var Imp = document.getElementById(impValue);
    var Curr = document.getElementById(currValue);
    var ImpCurr = document.getElementById(impcurr);

    var otherImp = document.getElementById(oldImp);
    var otherPrice = document.getElementById(oldPrice);

    var AllImp = document.getElementById(allImp);
    var AllPrice = document.getElementById(allPrice);

    var Table = table;

    var buyImpressionValue = parseInt(clearNumber(senderValue, cur));
     
    if (buyImpressionValue > Impression) {
        buyImpression.value = formatInteger(Impression,cur,prec,incmark);
        buyCurrency.value = formatCurrency((cPT / 1000) * Impression, cur, prec, incmark);
        buyCurrency.disabled = true;
        Imp.value = Impression;
        Curr.value = parseFloat(clearNumber(buyCurrency.value, cur));
        ImpCurr.value = true;

        GetImpression(Table, otherImp.value, AllImp, cur, prec, incmark);
        GetPrice(Table, otherPrice.value, AllPrice, cur, prec, incmark);
        
        return;
        
    }

    if (buyImpressionValue.toString() == "" || buyImpressionValue.toString() == "NaN" || buyImpressionValue.toString() == null) {
        buyCurrency.value = "";
        buyCurrency.disabled = false;
        Imp.value = "";
        Curr.value = "";
        ImpCurr.value = null;
    }
    else {
        buyCurrency.value = formatCurrency((cPT / 1000) * buyImpressionValue, cur, prec, incmark);
        buyCurrency.disabled = true;
        Imp.value = buyImpressionValue;
        Curr.value = parseFloat(clearNumber(buyCurrency.value, cur));
        ImpCurr.value = true;
        buyImpression.value = formatInteger(buyImpressionValue, cur, prec, incmark);
    }

    GetImpression(Table, otherImp.value, AllImp, cur, prec, incmark);
    GetPrice(Table, otherPrice.value, AllPrice, cur, prec, incmark);
}

function buyCurrency(sender, senderValue, impression, clientID, cpt, cur, prec, incmark, impValue, currValue, impcurr, oldImp, oldPrice, table, allImp, allPrice) {
    var buyCurrency = sender;
    var buyCurrencyValue = parseFloat(clearNumber( senderValue, cur));
    var Impression = clearNumber(impression, cur);
    var buyImpression = document.getElementById(clientID);
    var cPT = parseFloat(clearNumber(cpt, cur));

    var Imp = document.getElementById(impValue);
    var Curr = document.getElementById(currValue);
    var ImpCurr = document.getElementById(impcurr);

    var otherImp = document.getElementById(oldImp);
    var otherPrice = document.getElementById(oldPrice);

    var AllImp = document.getElementById(allImp);
    var AllPrice = document.getElementById(allPrice);

    var Table = table;
    
    if (buyCurrencyValue > ((cPT/1000)*Impression)) {
        buyCurrency.value = formatCurrency(((cPT/1000)*Impression),cur,prec,incmark);
        buyImpression.value = formatInteger(Impression, cur, prec, incmark);
        buyImpression.disabled = true;
        Imp.value = clearNumber(Impression, cur);
        Curr.value = parseFloat(clearNumber(buyCurrency.value, cur));
        ImpCurr.value = false;

        GetImpression(Table, otherImp.value, AllImp, cur, prec, incmark);
        GetPrice(Table, otherPrice.value, AllPrice, cur, prec, incmark);
        
        return;
    }

    if (buyCurrencyValue.toString() == "" || buyCurrencyValue.toString() == "NaN" || buyCurrencyValue.toString() == null) {
        buyImpression.value = "";
        buyImpression.disabled = false;
        Imp.value = "";
        Curr.value = "";
        ImpCurr.value = "";
    }
    else {
        var num = clearNumber((buyCurrencyValue / (cPT / 1000)),cur).toString();
        var strnum = num.split('\.');
        buyImpression.value = formatInteger(strnum[0], cur, prec, incmark);
        Imp.value = strnum[0];
        Curr.value = buyCurrencyValue;
        ImpCurr.value = false;
        buyImpression.disabled = true;
    }

    GetImpression(Table, otherImp.value, AllImp, cur, prec, incmark);
    GetPrice(Table, otherPrice.value, AllPrice, cur, prec, incmark);
 }

 function GetImpression(sender, otherImp, allImp, cur, prec, incmark) {
     var Table = document.getElementById(sender);
     var OtherImpression = otherImp;
     var AllImpression = allImp;

     var Impression = 0;

     var aControls = Table.getElementsByTagName("input");
     
     if (aControls) {
         for (var i = 0; i < aControls.length; i++) {
             if (aControls[i].id.endsWith('_BuyImpression')
			    && aControls[i].type == "text" && aControls[i].value !="") {

                 Impression = Impression + parseInt(clearNumber(aControls[i].value,cur));
             }
         }
     }

     AllImpression.innerHTML = formatInteger(parseInt(OtherImpression) + Impression, cur, prec, incmark);
     
 }
 function getOrderedPrice(sender, unitPriceCtrl, totalPriceValueCtrl, totalPriceTextCtrl, isCpt , cur, prec, incmark) {

     var UnitPrice = document.getElementById(unitPriceCtrl);
     var TotalPriceValue = document.getElementById(totalPriceValueCtrl);
     var TotalPriceText = document.getElementById(totalPriceTextCtrl);
     var unitConst = 1
     if (isCpt == 1) {
     	unitConst = 1000;
     }
     var val = clearNumber(sender.value,cur) / unitConst * UnitPrice.value;
     TotalPriceValue.value = val;
     TotalPriceText.innerHTML = formatCurrency(val, cur, prec, incmark);

     sender.value = formatInteger(clearNumber(sender.value,cur), cur, 0, 0);
 }
 function GetPrice(sender, otherPrice, allPrice, cur, prec, incmark) {
     var Table = document.getElementById(sender);
     var OtherPrice = otherPrice;
     var AllPrice = allPrice;

     var Price = 0;

     var aControls = Table.getElementsByTagName("input");

     if (aControls) {
         for (var i = 0; i < aControls.length; i++) {
             if (aControls[i].id.endsWith('_BuyCurrency') 
			    && aControls[i].type == "text" && aControls[i].value != "") {

                 Price = Price + parseFloat(clearNumber(aControls[i].value, cur));
             }
         }
     }

     AllPrice.innerHTML = formatCurrency(parseFloat(OtherPrice) + Price, cur, prec, incmark);
 }

 function IsNumeric(sText) {
     var ValidChars = "0123456789 ";
     var IsNumber = true;
     var Char;


     for (i = 0; i < sText.length && IsNumber == true; i++) {
         Char = sText.charAt(i);
         if (ValidChars.indexOf(Char) == -1) {
             IsNumber = false;
         }
     }
     return IsNumber;

 }

 function buyCurrencyPricePerClick(sender, senderValue, clientID, cur, prec, incmark, impValue, currValue, impcurr, oldImp, oldPrice, table, allImp, allPrice, ppc, impression) {
     var buyCurrency = sender;
     var buyCurrencyValue = parseFloat(clearNumber(senderValue, cur));
     var buyImpression = document.getElementById(clientID);
     
     var Imp = document.getElementById(impValue);
     var Curr = document.getElementById(currValue);
     var ImpCurr = document.getElementById(impcurr);

     var otherImp = document.getElementById(oldImp);
     var otherPrice = document.getElementById(oldPrice);

     var AllImp = document.getElementById(allImp);
     var AllPrice = document.getElementById(allPrice);

     var Table = table;
     var pPC = parseFloat(clearNumber(ppc, cur));
     var Impression = clearNumber(impression, cur);

     if (buyCurrencyValue > (pPC * Impression)) {
         buyCurrency.value = formatCurrency((pPC * Impression),cur,prec,incmark);
         buyImpression.disabled = true;
         buyImpression.value = formatInteger(Impression, cur, prec, incmark);
         Imp.value = clearNumber(Impression, cur);
         Curr.value = parseFloat(clearNumber(buyCurrency.value, cur));
         ImpCurr.value = false;

         GetImpression(Table, otherImp.value, AllImp, cur, prec, incmark);
         GetPrice(Table, otherPrice.value, AllPrice, cur, prec, incmark);
         return;
     }

     if (buyCurrencyValue.toString() == "" || buyCurrencyValue.toString() == "NaN" || buyCurrencyValue.toString() == null) {
         Imp.value = "";
         Curr.value = "";
         ImpCurr.value = "";
     }
     else {

         var num = clearNumber((buyCurrency.value / pPC), cur);
         var strnum = num.split('\.');
         Imp.value = strnum[0];
         Curr.value = buyCurrencyValue;
         ImpCurr.value = false;
         buyImpression.disabled = true;
         buyImpression.value = formatInteger(strnum[0], cur, prec, incmark);
     }

     GetImpression(Table, otherImp.value, AllImp, cur, prec, incmark);
     GetPrice(Table, otherPrice.value, AllPrice, cur, prec, incmark);
 }

 function buyCurrencyOnBlur(sender, senderValue, cur, prec, incmark) {
     var buyCurrency = sender;
     var buyCurrencyValue = parseFloat(clearNumber(senderValue, cur));
     if (buyCurrencyValue.toString() == 'NaN') {
         buyCurrency.value = "";
     }
     else{
         buyCurrency.value = formatCurrency(buyCurrencyValue, cur, prec, incmark); 
     }
     
 }

 function buyImpressionOnBlur(sender, senderValue, cur, prec, incmark) {
     var buyImpression = sender;
     var buyImpressionValue = parseFloat(clearNumber(senderValue, cur));
     if (buyImpressionValue.toString() == 'NaN') {
         buyImpression.value = "";
     }
     else {
         buyImpression.value = formatInteger(buyImpressionValue, cur, prec, incmark);
     }

 }


// nasetování groupname radiobuttonům v repeateru
 function SetUniqueRadioButton(current) {

     var sender = document.getElementById(current);
     
     for (i = 0; i < document.forms[0].elements.length; i++) {


         elm = document.forms[0].elements[i]

         if (elm.type == 'radio') {
             
                 elm.checked = false;
             }
         }

         sender.checked = true;
     }

     function buyClick(sender, senderValue, impression, clientID, ppc, cur, prec, incmark, impValue, currValue, impcurr, oldImp, oldPrice, table, allImp, allPrice) {
         var buyImpression = sender;
         var Impression = clearNumber(impression, cur);
         var buyCurrency = document.getElementById(clientID);
         var pPC = parseInt(clearNumber(ppc, cur));

         var Imp = document.getElementById(impValue);
         var Curr = document.getElementById(currValue);
         var ImpCurr = document.getElementById(impcurr);

         var otherImp = document.getElementById(oldImp);
         var otherPrice = document.getElementById(oldPrice);

         var AllImp = document.getElementById(allImp);
         var AllPrice = document.getElementById(allPrice);

         var Table = table;

         var buyImpressionValue = parseInt(clearNumber(senderValue, cur));

         if (buyImpressionValue > Impression) {
             buyImpression.value = formatInteger(Impression, cur, prec, incmark);
             buyCurrency.value = formatCurrency(pPC * Impression, cur, prec, incmark);
             buyCurrency.disabled = true;
             Imp.value = Impression;
             Curr.value = parseFloat(clearNumber(buyCurrency.value, cur));
             ImpCurr.value = true;

             GetImpression(Table, otherImp.value, AllImp, cur, prec, incmark);
             GetPrice(Table, otherPrice.value, AllPrice, cur, prec, incmark);

             return;

         }

         if (buyImpressionValue.toString() == "" || buyImpressionValue.toString() == "NaN" || buyImpressionValue.toString() == null) {
             buyCurrency.value = "";
             buyCurrency.disabled = false;
             Imp.value = "";
             Curr.value = "";
             ImpCurr.value = null;
         }
         else {
             buyCurrency.value = formatCurrency(pPC * buyImpressionValue, cur, prec, incmark);
             buyCurrency.disabled = true;
             Imp.value = buyImpressionValue;
             Curr.value = parseFloat(clearNumber(buyCurrency.value, cur));
             ImpCurr.value = true;
             buyImpression.value = formatInteger(buyImpressionValue, cur, prec, incmark);
         }

         GetImpression(Table, otherImp.value, AllImp, cur, prec, incmark);
         GetPrice(Table, otherPrice.value, AllPrice, cur, prec, incmark);
     }


     function ValidUrl(sender) {
         var EditTextUrl = sender;
         var Url = EditTextUrl.value;

         var Http;
         var Https;

         if (Url.replace(/^\s*|\s*$/g, "") != "") {
             Http = Url.substring(0, 7).toLowerCase();
             Https = Url.substring(0, 8).toLowerCase();

             if (Http == "http://" || Https == "https://") {
                 sender.value = EditTextUrl.value;
             }
             else {
                 sender.value = "http://" + EditTextUrl.value;
             }
         }
     }

     function SaveConfirm(message_plus, message_minus, full_name, type, reason, howmuch) {
         var MPlus = document.getElementById(message_plus.id);
         var MMinus = document.getElementById(message_minus.id);
         var FullName = document.getElementById(full_name.id);
         var Type = document.getElementById(type.id);
         var Reason = document.getElementById(reason.id);
         var HowMuch = document.getElementById(howmuch.id);

         if (Type.value == "1") {
             var message = MPlus.value;
         }
         else {
             var message = MMinus.value;
          }

          message = message.replace("{0}", FullName.value);
          message = message.replace("{1}", formatCurrency(HowMuch.value, 'cs-CZ', 0, 1));
          message = message.replace("{2}", Reason.value);
        
         return self.confirm(message);
     }

     function SetMoney(sender, cur, prec, incmark) {
         var value = sender.value;
         if (value != "") {
             sender.value = formatCurrency(value, cur, prec, incmark)
          }

         }

     function testICO(ctrl, args) {
     	var x = args.Value;
     	args.IsValid = isICO(x);
     	return args.IsValid;
     }

     function isICO(x) {
     	//var validator = document.getElementById(validatorClientId.id);
     	//errMsg = Zadaný údaj není korektní!
     	try {
     		var a = 0;
     		if (x.length == 0) return true;
     		if (x.length != 8) throw 1;
     		var b = x.split('');
     		var c = 0;
     		for (var i = 0; i < 7; i++) a += (parseInt(b[i]) * (8 - i));
     		a = a % 11;
     		c = 11 - a;
     		if (a == 1) c = 0;
     		if (a == 0) c = 1;
     		if (a == 10) c = 1;
     		if (parseInt(b[7]) != c) throw (1);
     	}
     	catch (e) {
     		//alert(errMsg);
     		return false;
     	}
     	return true;
     }

     function testDIC(ctrl, args) {
     	var x = args.Value;
     	args.IsValid = isDIC(x);
     	return args.IsValid;
     }

     function isDIC(x) {

     	//limitMsg = Není možné zkontrolovat DIČ mimo Českou a Slovenskou republiku!
     	//errMsg = Zadaný údaj není korektní!
     	try {
     		if (x.length == 0) return true;
     		var id = x.substr(0, 2).toUpperCase();
     		x = x.substr(2);
     		if ((id == 'CZ') || (id == 'SK')) {
     			if (x.length < 8) throw 1;
     			if (x.length > 11) throw 1;
     			if (x.length == 8) {
     				return isICO(x);
     			}
     			else {
     				return isRC(x, 18);
     			}
     			throw 1;
     		}		
     		//alert(limitMsg);
     		return false;
     	}
     	catch (e) {
     		//alert(errMsg);
     		return false;
     	}
     }

     function testRC(ctrl, args) {
     	var x = args.Value;
		var age = 0
     	args.IsValid = isRC(x, age);
     	return args.IsValid;
     }

     function isRC(x, age) {
     	//errMsg = Zadaný údaj není korektní!
     	if (!age) age = 0;
     	try {
     		if (x.length == 0) return true;
     		if (x.length < 9) throw 1;
     		var year = parseInt(x.substr(0, 2), 10);
     		var month = parseInt(x.substr(2, 2), 10);
     		var day = parseInt(x.substr(4, 2), 10);
     		var ext = parseInt(x.substr(6, 3), 10);
     		if ((x.length == 9) && (year < 54)) return true;
     		var c = 0;
     		if (x.length == 10) c = parseInt(x.substr(9, 1));
     		var m = parseInt(x.substr(0, 9)) % 11;
     		if (m == 10) m = 0;
     		if (m != c) throw 1;
     		year += (year < 54) ? 2000 : 1900;
     		if ((month > 70) && (year > 2003)) month -= 70;
     		else if (month > 50) month -= 50;
     		else if ((month > 20) && (year > 2003)) month -= 20;
     		var d = new Date();
     		if ((year + age) > d.getFullYear()) throw 1;
     		if (month == 0) throw 1;
     		if (month > 12) throw 1;
     		if (day == 0) throw 1;
     		if (day > 31) throw 1;
     	}
     	catch (e) {
     		//alert(errMsg);
     		return false;
     	}
     	return true;
     }
