﻿var d = document;
var modalbox;

var forAll = {
};
forAll.cookie_domen = 'constr.prmedia.od.ua';

function showSubMenu() {
 d.getElementById('submenu').style.display='block';
}
function hideSubMenu() {
 d.getElementById('submenu').style.display='none';
}

function getGMTTime(time){	// получение времени в формате GMT
	date = new Date();
	if (time != null){
		var sec = date.getTime();
		sec += time * 1000;
		date.setTime(sec);
	};
	return date.toGMTString();
};

function setCookie(name, value, days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
		var expires = "; expires=" + date.toGMTString();
	}
	else var expires = "";
	document.cookie = name + "=" + value + expires + "; path=/";
}

function getCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for (var i = 0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0) == ' ') c = c.substring(1, c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
	}
	return null;
}

function eraseCookie(name) {
	setCookie(name, "", -1);
} 

function setDate(objClick) {
 if(objClick.getAttribute("unactive")==null) {
   var objId = objClick.id;
   var newStr = objId.replace("in_cart_","");
   d.getElementById('date_block_'+newStr).style.display='block';
   objClick.className="into_portf_unact";
   //objClick.setAttribute("unactive", true);
 }
}

function clearMessageBox() {
 d.getElementById('message_box').innerHTML='';
}

function addOrder(objId) {
	d.getElementById('in_cart_'+objId).className="into_portf_act";
	d.getElementById('in_cart_'+objId).style.cursor="pointer";
	d.getElementById('date_block_'+objId).style.display="none";
	if(getCookie('in_cart')) {
		var currentCookie=getCookie('in_cart');
		//id#amount#date_from#date_to|...
		var pattern=new RegExp(objId+"#");
		var pattern_date=new RegExp("([0-9]{1,2})-([0-9]{1,2})-([0-9]{4})");
		if(pattern.test(currentCookie)) {
			alert('Эта конструкция уже есть в Вашем портфеле!');		
		} else if(!pattern_date.test(d.getElementById('date_from_'+objId).value)) {
			alert('Вы не указали дату начала размещения!');
		} else if(!pattern_date.test(d.getElementById('date_to_'+objId).value)) {
			alert('Вы не указали дату конца размещения!');
		} else {
			var dateFromArr = d.getElementById('date_from_'+objId).value;
			var dateToArr = d.getElementById('date_to_'+objId).value;
			dateFromArr = dateFromArr.split('-');
			dateToArr = dateToArr.split('-');

			if((dateFromArr[1]==dateToArr[1])&&(dateToArr[0]-dateFromArr[0]<30)) {
				alert('Минимальное время заказа плоскости - один календарный месяц!');
			} else {			
				setCookie('in_cart',currentCookie+objId+'#'+d.getElementById('square_num_'+objId).value+'#'+d.getElementById('date_from_'+objId).value+'#'+d.getElementById('date_to_'+objId).value+'|',365);
				updatePortfolioAmount();
			}
		}
	} else {
		var pattern_date=new RegExp("([0-9]{1,2})-([0-9]{1,2})-([0-9]{4})");
		if(!pattern_date.test(d.getElementById('date_from_'+objId).value)) {
			alert('Вы не указали дату начала размещения!');
		} else if(!pattern_date.test(d.getElementById('date_to_'+objId).value)) {
			alert('Вы не указали дату конца размещения!');
		} else {
			var dateFromArr = d.getElementById('date_from_'+objId).value;
			var dateToArr = d.getElementById('date_to_'+objId).value;
			dateFromArr = dateFromArr.split('-');
			dateToArr = dateToArr.split('-');

			if((dateFromArr[1]==dateToArr[1])&&(dateToArr[0]-dateFromArr[0]<30)) {
				alert('Минимальное время заказа плоскости - один календарный месяц!');
			} else {			
				setCookie('in_cart',objId+'#'+d.getElementById('square_num_'+objId).value+'#'+d.getElementById('date_from_'+objId).value+'#'+d.getElementById('date_to_'+objId).value+'|',365);
				updatePortfolioAmount();
			}
		}
	}
}

function updatePortfolioAmount() {
	if(getCookie('in_cart')) {
		var currentCookie=getCookie('in_cart');
		currentCookie = currentCookie.split('|');
		if(currentCookie.length>0) {
			d.getElementById('portfolio_count').innerHTML=currentCookie.length-1;
		}
	}
}

/* календарь */
function getObj(objID)
{
    if (document.getElementById) {return document.getElementById(objID);}
    else if (document.all) {return document.all[objID];}
    else if (document.layers) {return document.layers[objID];}
	
}

function checkClick(e) {
	e?evt=e:evt=event;
	CSE=evt.target?evt.target:evt.srcElement;
	if (getObj('fc'))
		if (!isChild(CSE,getObj('fc')))
			getObj('fc').style.display='none';
}

function isChild(s,d) {
	while(s) {
		if (s==d) 
			return true;
		s=s.parentNode;
	}
	return false;
}

function Left(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function Top(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	curtop += 5;
	return curtop;
}


// Calendar script
var now = new Date;
var sccd=now.getDate();
var sccm=now.getMonth();
var sccy=now.getFullYear();
var ccm=now.getMonth();
var ccy=now.getFullYear();

document.write('<table id="fc" style="top:0px; left:0px; z-index:20; position:absolute; display:none;border-collapse:collapse;background:#FFFFFF;border:1px solid #303030;-moz-user-select:none;-khtml-user-select:none;user-select:none;" cellpadding=2>');
document.write('<tr style="font:bold 13px Arial"><td style="cursor:pointer;font-size:15px" onclick="csubm()">&laquo;</td><td colspan="5" id="mns" align="center"></td><td align="right" style="cursor:pointer;font-size:15px" onclick="caddm()">&raquo;</td></tr>');
document.write('<tr style="background:#4d88cc;font:12px Arial;color:#FFFFFF"><td align=center>П</td><td align=center>В</td><td align=center>С</td><td align=center>Ч</td><td align=center>П</td><td align=center>С</td><td align=center>В</td></tr>');
for(var kk=1;kk<=6;kk++) {
	document.write('<tr>');
	for(var tt=1;tt<=7;tt++) {
		num=7 * (kk-1) - (-tt);
		document.write('<td id="v' + num + '" style="width:18px;height:18px">&nbsp;</td>');
	}
	document.write('</tr>');
}
document.write('<tr><td colspan="7" align="center" style="cursor:pointer;font:13px Arial;background:#6FB1FF" onclick="today()">Сегодня: '+addnull(sccd,sccm+1,sccy)+'</td></tr>');
document.write('</table>');

document.all?document.attachEvent('onclick',checkClick):document.addEventListener('click',checkClick,false);




var updobj;
function lcs(ielem) {
	updobj=ielem;
	getObj('fc').style.left=Left(ielem)+'px';
	getObj('fc').style.top=Top(ielem)+ielem.offsetHeight+'px';
	getObj('fc').style.display='';
	
	// First check date is valid
	curdt=ielem.value;
	curdtarr=curdt.split('-');
	isdt=true;
	for(var k=0;k<curdtarr.length;k++) {
		if (isNaN(curdtarr[k]))
			isdt=false;
	}
	if (isdt&(curdtarr.length==3)) {
		ccm=curdtarr[1]-1;
		ccy=curdtarr[2];
		prepcalendar(curdtarr[0],curdtarr[1]-1,curdtarr[2]);
	}
	
}

function evtTgt(e)
{
	var el;
	if(e.target)el=e.target;
	else if(e.srcElement)el=e.srcElement;
	if(el.nodeType==3)el=el.parentNode; // defeat Safari bug
	return el;
}
function EvtObj(e){if(!e)e=window.event;return e;}
function cs_over(e) {
	evtTgt(EvtObj(e)).style.background='#FFEBCC';
}
function cs_out(e) {
	evtTgt(EvtObj(e)).style.background='#FFFFFF';
}
function cs_click(e) {
	updobj.value=calvalarr[evtTgt(EvtObj(e)).id.substring(1,evtTgt(EvtObj(e)).id.length)];
	getObj('fc').style.display='none';
}

var mn=new Array('Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентрябрь','Октябрь','Ноябрь','Декабрь');
var mnn=new Array('31','28','31','30','31','30','31','31','30','31','30','31');
var mnl=new Array('31','29','31','30','31','30','31','31','30','31','30','31');
var calvalarr=new Array(42);

function f_cps(obj) {
	obj.style.background='#FFFFFF';
	obj.style.font='10px Arial';
	obj.style.color='#333333';
	obj.style.textAlign='center';
	obj.style.textDecoration='none';
	obj.style.border='1px solid #606060';
	obj.style.cursor='pointer';
}

function f_cpps(obj) {
	obj.style.background='#C4D3EA';
	obj.style.font='10px Arial';
	obj.style.color='#FF9900';
	obj.style.textAlign='center';
	obj.style.textDecoration='line-through';
	obj.style.border='1px solid #6487AE';
	obj.style.cursor='default';
}

function f_hds(obj) {
	obj.style.background='#FFF799';
	obj.style.font='bold 10px Arial';
	obj.style.color='#333333';
	obj.style.textAlign='center';
	obj.style.border='1px solid #6487AE';
	obj.style.cursor='pointer';
}

// day selected
function prepcalendar ( hd, cm, cy )
{
	now=new Date();
	sd=now.getDate();
	td=new Date();
	td.setDate(1);
	td.setFullYear(cy);
	td.setMonth(cm);
	cd=td.getDay();
	if (cd==0)cd=6; else cd--;
	
	getObj('mns').innerHTML=mn[cm]+ ' ' + cy;
	
	marr=((cy%4)==0)?mnl:mnn;
	
	for(var d=1;d<=42;d++)
	{
		f_cps ( getObj ( 'v' + parseInt ( d ) ) );
		if ( ( d >= (cd -(-1) ) ) && ( d<=cd-(-marr[cm]) ) )
		{
			getObj('v'+parseInt(d)).onmouseover=cs_over;
			getObj('v'+parseInt(d)).onmouseout=cs_out;
			getObj('v'+parseInt(d)).onclick=cs_click;
			
			// if today
			if (sccm == cm && sccd == (d-cd) && sccy == cy)
				getObj('v'+parseInt(d)).style.color='#FF9900';

			getObj('v'+parseInt(d)).innerHTML=d-cd;
				
			calvalarr[d]=addnull(d-cd,cm-(-1),cy);
		}
		else
		{
			getObj('v'+d).innerHTML='&nbsp;';
			getObj('v'+parseInt(d)).onmouseover=null;
			getObj('v'+parseInt(d)).onmouseout=null;
			getObj('v'+parseInt(d)).onclick=null;
			getObj('v'+parseInt(d)).style.cursor='default';
		}
	}
}

prepcalendar('',ccm,ccy);

function caddm() {
	marr=((ccy%4)==0)?mnl:mnn;
	
	ccm+=1;
	if (ccm>=12) {
		ccm=0;
		ccy++;
	}
	prepcalendar('',ccm,ccy);
}

function csubm() {
	marr=((ccy%4)==0)?mnl:mnn;

	ccm-=1;
	if (ccm<0) {
		ccm=11;
		ccy--;
	}
	prepcalendar('',ccm,ccy);
}

function today() {
	updobj.value=addnull(now.getDate(),now.getMonth()+1,now.getFullYear());
	getObj('fc').style.display='none';
	prepcalendar('',sccm,sccy);
}

function addnull(d,m,y)
{
	var d0='',m0='';
	if (d<10)d0='0';
	if (m<10)m0='0';
	
	return ''+d0+d+'-'+m0+m+'-'+y;
}
/* !календарь */

function delPortfRow(nid,amount,date_from,date_to) {
	var currentCookie=getCookie('in_cart');
	var currentCookie = currentCookie.replace(nid+"#"+amount+"#"+date_from+"#"+date_to+"|","");
	eraseCookie('in_cart');
	setCookie('in_cart',currentCookie,365);
	updatePortfolioAmount();
	var genPrice=d.getElementById('gen_price').innerHTML;
	var cPrice=d.getElementById('cprice_'+nid).innerHTML;
	d.getElementById('gen_price').innerHTML='';
	d.getElementById('gen_price').innerHTML=sprintf("%02.2f", (genPrice-cPrice));
	d.getElementById('order_row_'+nid).style.display='none';
	if(currentCookie=='') {
		d.getElementById('portfolio_msg').innerHTML='';
		d.getElementById('order_form').innerHTML='';
		d.getElementById('portfolio_msg').innerHTML='В портфеле нет ни одного заказа.';
	    d.getElementById('list_table').style.display='none';
	}
}

function submitOrder(prizn) {
 if(prizn==1) {
    d.forms.orderForm.submit();
 } else {
	alert('Войдите или зарегистрируйтесь для того чтобы оформить заказ!');
 }
}

function submitCallback() {
    d.forms.callbackForm.submit();
}

function submitContact() {
    d.forms.contactForm.submit();
}

function submitFAQ() {
    d.forms.faqForm.submit();
}

function sprintf( ) {   
 
    var regex = /%%|%(\d+\$)?([-+#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuidfegEG])/g;
    var a = arguments, i = 0, format = a[i++];
 
    var pad = function(str, len, chr, leftJustify) {
        var padding = (str.length >= len) ? '' : Array(1 + len - str.length >>> 0).join(chr);
        return leftJustify ? str + padding : padding + str;
    };

    var justify = function(value, prefix, leftJustify, minWidth, zeroPad) {
        var diff = minWidth - value.length;
        if (diff > 0) {
            if (leftJustify || !zeroPad) {
            value = pad(value, minWidth, ' ', leftJustify);
            } else {
            value = value.slice(0, prefix.length) + pad('', diff, '0', true) + value.slice(prefix.length);
            }
        }
        return value;
    };

    var formatBaseX = function(value, base, prefix, leftJustify, minWidth, precision, zeroPad) {

        var number = value >>> 0;
        prefix = prefix && number && {'2': '0b', '8': '0', '16': '0x'}[base] || '';
        value = prefix + pad(number.toString(base), precision || 0, '0', false);
        return justify(value, prefix, leftJustify, minWidth, zeroPad);
    };

    var formatString = function(value, leftJustify, minWidth, precision, zeroPad) {
        if (precision != null) {
            value = value.slice(0, precision);
        }
        return justify(value, '', leftJustify, minWidth, zeroPad);
    };

    var doFormat = function(substring, valueIndex, flags, minWidth, _, precision, type) {
        if (substring == '%%') return '%';
 
        var leftJustify = false, positivePrefix = '', zeroPad = false, prefixBaseX = false;
        for (var j = 0; flags && j < flags.length; j++) switch (flags.charAt(j)) {
            case ' ': positivePrefix = ' '; break;
            case '+': positivePrefix = '+'; break;
            case '-': leftJustify = true; break;
            case '0': zeroPad = true; break;
            case '#': prefixBaseX = true; break;
        }

        if (!minWidth) {
            minWidth = 0;
        } else if (minWidth == '*') {
            minWidth = +a[i++];
        } else if (minWidth.charAt(0) == '*') {
            minWidth = +a[minWidth.slice(1, -1)];
        } else {
            minWidth = +minWidth;
        }

        if (minWidth < 0) {
            minWidth = -minWidth;
            leftJustify = true;
        }
 
        if (!isFinite(minWidth)) {
            throw new Error('sprintf: (minimum-)width must be finite');
        }
 
        if (!precision) {
            precision = 'fFeE'.indexOf(type) > -1 ? 6 : (type == 'd') ? 0 : void(0);
        } else if (precision == '*') {
            precision = +a[i++];
        } else if (precision.charAt(0) == '*') {
            precision = +a[precision.slice(1, -1)];
        } else {
            precision = +precision;
        }
 
        // grab value using valueIndex if required?
        var value = valueIndex ? a[valueIndex.slice(0, -1)] : a[i++];
 
        switch (type) {
            case 's': return formatString(String(value), leftJustify, minWidth, precision, zeroPad);
            case 'c': return formatString(String.fromCharCode(+value), leftJustify, minWidth, precision, zeroPad);
            case 'b': return formatBaseX(value, 2, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
            case 'o': return formatBaseX(value, 8, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
            case 'x': return formatBaseX(value, 16, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
            case 'X': return formatBaseX(value, 16, prefixBaseX, leftJustify, minWidth, precision, zeroPad).toUpperCase();
            case 'u': return formatBaseX(value, 10, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
            case 'i':
            case 'd': {
                        var number = parseInt(+value);
                        var prefix = number < 0 ? '-' : positivePrefix;
                        value = prefix + pad(String(Math.abs(number)), precision, '0', false);
                        return justify(value, prefix, leftJustify, minWidth, zeroPad);
                    }
            case 'e':
            case 'E':
            case 'f':
            case 'F':
            case 'g':
            case 'G':
                        {
                        var number = +value;
                        var prefix = number < 0 ? '-' : positivePrefix;
                        var method = ['toExponential', 'toFixed', 'toPrecision']['efg'.indexOf(type.toLowerCase())];
                        var textTransform = ['toString', 'toUpperCase']['eEfFgG'.indexOf(type) % 2];
                        value = prefix + Math.abs(number)[method](precision);
                        return justify(value, prefix, leftJustify, minWidth, zeroPad)[textTransform]();
                    }
            default: return substring;
        }
    };
 
    return format.replace(regex, doFormat);
}

function ShowModalbox() {
	d.getElementById("mainHideBg").style.filter = "alpha(opacity=40)";
	d.getElementById("mainHideBg").style.opacity = 0.4;
	d.getElementById("mainHideBg").style.display = "block";

	modalbox.style.display = "block";
	d.getElementById("mapModal").style.filter = "alpha(opacity=100)";
	d.getElementById("mapModal").style.opacity = 1;
	d.getElementById("mapModal").style.zIndex = 99;
}

function HideModalbox() {
	d.getElementById("mainHideBg").style.display = "none";
	modalbox.style.display = "none";
}

var ua = navigator.userAgent.toLowerCase();
var isOpera = (ua.indexOf('opera')  > -1);
var isIE = (!isOpera && ua.indexOf('msie') > -1);
 
function getDocumentHeight() {
  return Math.max(document.compatMode != 'CSS1Compat' ? document.body.scrollHeight : document.documentElement.scrollHeight, getViewportHeight());
}
 
function getViewportHeight() {
  return ((document.compatMode || isIE) && !isOpera) ? (document.compatMode == 'CSS1Compat') ? document.documentElement.clientHeight : document.body.clientHeight : (document.parentWindow || document.defaultView).innerHeight;
}
