
   function getPageSize(){
      var xScroll, yScroll;
      if (window.innerHeight && window.scrollMaxY) {           xScroll = document.body.scrollWidth;
       yScroll = window.innerHeight + window.scrollMaxY;
   } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
       xScroll = document.body.scrollWidth;
       yScroll = document.body.scrollHeight;
   } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
       xScroll = document.body.offsetWidth;
       yScroll = document.body.offsetHeight;
   }
         var windowWidth, windowHeight;
   if (self.innerHeight) {    // all except Explorer
       windowWidth = self.innerWidth;
       windowHeight = self.innerHeight;
   } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
       windowWidth = document.documentElement.clientWidth;
       windowHeight = document.documentElement.clientHeight;
   } else if (document.body) { // other Explorers
       windowWidth = document.body.clientWidth;
       windowHeight = document.body.clientHeight;
   }             // for small pages with total height less then height of the viewport
   if(yScroll < windowHeight){
       pageHeight = windowHeight;
   } else {
       pageHeight = yScroll;
   }

   // for small pages with total width less then width of the viewport
   if(xScroll < windowWidth){           pageWidth = windowWidth;
   } else {
       pageWidth = xScroll;
   }

            var test1 = document.body.scrollHeight;
   var test2 = document.body.offsetHeight
   if (test1 > test2) // all but Explorer Mac
   {
       x = document.body.scrollWidth;
       y = document.body.scrollHeight;
   }
   else // Explorer Mac;
        //would also work in Explorer 6 Strict, Mozilla and Safari
   {
       x = document.body.offsetWidth;
       y = document.body.offsetHeight;
   }
      //alert(x + '     ' + y)
      arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
   return arrayPageSize;
}

/*
function megaFormStart(divID,fadeOut, itemId) {
	if(!fadeOut) fadeOut='fadeOutFon';
   var fadeOutFon=document.getElementById(fadeOut);
   var objBody = document.getElementsByTagName("body").item(0);
   var user_agent = navigator.userAgent.toLowerCase();
   var pos_x = 0;
   var pos_y = 0;

   itemToSubmitTitle = document.getElementById('itemtosubmittitle');
   itemToSubmitTitle.innerHTML = document.getElementById('itemtitle_'+itemId).innerHTML;

   document.getElementById('itemid').value = itemId;

   document.getElementById('cmserror').style.display = "none";
   document.getElementById('cmsmessage').style.display = "none";


 fadeOutFon.style.zIndex = '9999999';

     fadeOutFon.style.position = 'absolute';
     fadeOutFon.style.top = 0;
     fadeOutFon.style.left = 0;
     fadeOutFon.style.background = 'black';
     fadeOutFon.style.opacity = 1;
     fadeOutFon.style.width = getPageSize()[0] + 'px';
     fadeOutFon.style.height = getPageSize()[1] + 'px';
     //fadeOutFon.style.display = 'block';
     //new Effect.Opacity(fadeOutFon, { duration:0.3, from:0, to:0.5 });

   addForm = document.getElementById(divID);

   addForm.style.zIndex = '10000000';
   addForm.style.position = 'absolute';
   addForm.style.opacity = 1;
   addForm.style.display = 'block';
   //new Effect.Opacity(addForm, { duration:1, from:0, to:1});

   if (user_agent.indexOf("msie")!= -1) {
       pos_x = (screen.width/2) - (addForm.offsetWidth/2);
       pos_y = document.documentElement.scrollTop + (screen.height/2) - 100 -(addForm.offsetHeight/2);
       addForm.style.left = pos_x + "px";
       addForm.style.top = pos_y + "px";
   }
   else {
       addForm.style.left=(screen.width/2 - (addForm.offsetWidth/2))  + "px";
       addForm.style.top=(self.pageYOffset + (screen.height/2) - 100 -(addForm.offsetHeight/2))+"px";
   }
}

function megaFormFinish(divID,fadeOut) {
		if(!fadeOut) fadeOut='fadeOutFon';
		var fadeOutFon=document.getElementById(fadeOut);
       //new Effect.Opacity(fadeOutFon, { duration:1, from:0.5, to:0, afterFinish : function(){ fadeOutFon.style.display = 'none'; }});
       fadeOutFon.style.opacity = 0;
       fadeOutFon.style.display = 'none';
       addForm = document.getElementById(divID);
       //new Effect.Opacity(addForm, { duration:0.3, from:1, to:0, afterFinish : function(){ addForm.style.display = 'none'; }});
       addForm.style.opacity = 0;
   	   addForm.style.display = 'none';
}
*/
function ShowDiv(DivName) {
	element = document.getElementById(DivName);
	element.style.visibility = "visible";
}
function HideDiv(DivName) {
	element = document.getElementById(DivName);
	element.style.visibility = "hidden";
}

var errmsgslider = false;
var msgslider = false;

function slideInErrmsg(element) {
	if (!element) element = 'cmserror';

	if (!errmsgslider) {
		errmsgslider = new Fx.Slide(element);
	}

	errmsgslider.slideIn();
	return false;
}

function slideOutErrmsg(element) {
	if (!element) element = 'cmserror';

	if (!errmsgslider) {
		errmsgslider = new Fx.Slide(element);
	}

	errmsgslider.slideOut();
	return false;
}

function slideInMsg(element) {
	if (!element) element = 'cmsmessage';

	if (!msgslider) {
		msgslider = new Fx.Slide(element);
	}

	msgslider.slideIn();
	return false;
}

function slideOutMsg(element) {
	if (!element) element = 'cmsmessage';

	if (!msgslider) {
		msgslider = new Fx.Slide(element);
	}

	msgslider.slideOut();
	return false;
}

function hideMsgSlider() {
	if (msgslider) {
		msgslider.hide();
		return true;
	}
	return false;
}

function hideErrmsgSlider() {
	if (errmsgslider) {
		errmsgslider.hide();
		return true;
	}
	return false;
}

function showMsgSlider() {
	if (msgslider) {
		msgslider.show();
		return true;
	}
	return false;
}

function showErrmsgSlider() {
	if (errmsgslider) {
		errmsgslider.show();
		return true;
	}
	return false;
}



var TicketCalculator = function (fieldsId, totalId) {
	this.fields 		= fieldsId;
	this.totalResult 	= 0;
	this.total 			= totalId;
}

TicketCalculator.prototype.calculate = function () {
	this.totalResult = 0;
	if (this.fields.length) {
		for (var i=0; i < this.fields.length; i++) {
			this.totalResult += this.calcOne(this.fields[i]);
		}
		document.getElementById(this.total).innerHTML = '$' + this.totalResult;
		return this.totalResult;
	}
	else return false;
}

TicketCalculator.prototype.calcOne = function (field) {
	number = parseInt( document.getElementById(field.name).value);
	if (isNaN(number)) res = 0;
	else res = field.coeff * Math.abs(number);
	document.getElementById(field.result).innerHTML = res;
	return res;
}

function newDisigenCalc( oneTicketCost )
{
    const ONE_EVENT_TICKET_COST = 125;

    if ( typeof oneTicketCost == "undefined" ) oneTicketCost = ONE_EVENT_TICKET_COST;

    var countEntered = document.getElementById('fv_evtickets').value;
    var total = _calcTicketsSumm( { one: oneTicketCost, count: countEntered } );

    document.getElementById( 'total_charged' ).innerHTML = '$' + _viewIfFloat( total );
}

function _viewIfFloat ( flNumber ) {
    const DIGITS_AFTER_POINT_IF_NECESSARY = 2;

    total = flNumber.toString();

    var pointPosition = total.indexOf( "." );

    if ( pointPosition > 0 ) {
        return total.substring( 0 , total.indexOf( "." ) + 1 + DIGITS_AFTER_POINT_IF_NECESSARY );
    } else {
        return total;
    }
}

function _calcTicketsSumm( data ) {
    var countEntered = Math.abs ( parseInt( data.count ) );
    if ( isNaN ( countEntered ) ) countEntered = 0;
    return _viewIfFloat( data.one * countEntered );
}

function calcTicketsTotalSumm( tickets ) {
    // Set values by default if not set before
    const ONE_EVENT_TICKET_COST = 125;
    const ONE_MERCEDES_TICKET_COST = 100;

    if ( typeof tickets == "undefined" ) {
        var tickets = { event: ONE_EVENT_TICKET_COST,
                        mercedes: ONE_MERCEDES_TICKET_COST }
    }
    var oneEventTicketCost = tickets.event || ONE_EVENT_TICKET_COST;
    var oneMercedesTicketCost = tickets.mercedes || ONE_MERCEDES_TICKET_COST;

    // Now calc total summ
    var countEntered = document.getElementById('fv_evtickets').value;
    var totalEventTicketCost = _calcTicketsSumm( { one: oneEventTicketCost, count: countEntered } );

    countEntered = document.getElementById('fv_evtickets_1').value;
    var totalMercedesTicketCost = _calcTicketsSumm( { one: oneMercedesTicketCost, count: countEntered } );

    var totalSumm = parseFloat( totalEventTicketCost ) + parseFloat( totalMercedesTicketCost );

    document.getElementById( 'total_charged' ).innerHTML = '$' + _viewIfFloat( totalSumm );
}

function setMessageText(text, msgelement, target) {
	if (!target) target = 'value';

	spacepos = text.indexOf(' ');
	if (spacepos > 0) {
		text = text.substr(0, spacepos);
	}
	msg = msgbegin + text + msgend;

	element = document.getElementById(msgelement);
	if (element) {
		element[target] = msg;
		return true;
	}
	return false;
}