var receiveReq = getXmlHttpRequestObject();
var siteURL = '/';
var bookmarkurl="http://www.kaleydoskop.kiev.ua"
var bookmarktitle="ПОДАРКИ НА ВСЕ СЛУЧАИ ЖИЗНИ"

function addbookmark(){
  if (document.all)
  window.external.AddFavorite(bookmarkurl,bookmarktitle)
}

function setHome(ob) {
  ob.style.behavior='url(#default#homepage)';
  ob.setHomePage(document.location);
}

function getXmlHttpRequestObject(){
  if (window.XMLHttpRequest){
    return new XMLHttpRequest();
  }else if(window.ActiveXObject){
    return new ActiveXObject("Microsoft.XMLHTTP");
  }
}

function addInBasket(product_id) {
  receiveReq.open("GET", siteURL+'basket.php?product_id='+product_id, true);
  receiveReq.onreadystatechange = handleReceiveOrder;
  receiveReq.send(null);
}

function stripHTML(oldString) {
   var newString = "";
   var inTag = false;
   for(var i = 0; i < oldString.length; i++) {
        if(oldString.charAt(i) == '<') inTag = true;
        if(oldString.charAt(i) == '>') {
              inTag = false;
              i++;
        }
        if(!inTag) newString += oldString.charAt(i);
   }
   return newString;
}

function handleReceiveOrder() {
  if (receiveReq.readyState==4){
    var basket_img = document.getElementById("basket_img");
    var basket = document.getElementById("basket");
    var price = document.getElementById("price");
    var total_price = 0;
    //alert(receiveReq.responseText);
    var response = eval("(" + receiveReq.responseText + ")");
    basket_img.src=siteURL+'images/sbasket.gif';
    if(basket.innerHTML=='Нет товаров') basket.innerHTML='';
    for(var i=0;i<response.messages.message.length;i++){
      if(parseInt(response.messages.message[i].quantity)>1){
        //alert(response.messages.message[i].product_id);
        //alert(document.getElementById('quantity'+response.messages.message[i].product_id).innerHTML);
        document.getElementById('quantity'+response.messages.message[i].product_id).innerHTML=parseInt(document.getElementById('quantity'+response.messages.message[i].product_id).innerHTML)+1;
      }else{
        basket.innerHTML+='<div id="product_id'+response.messages.message[i].product_id+'"><img src="'+siteURL+'images/star2.gif" width="10" height="10" alt="" border="0">&nbsp;&nbsp;'+response.messages.message[i].title+'&nbsp;(<div id="quantity'+response.messages.message[i].product_id+'" style="display:inline;">'+response.messages.message[i].quantity+'</div>&nbsp;шт.)</div>';
      }
      //alert(Math.round(parseFloat(price.innerHTML)));
      total_price = parseFloat(response.messages.message[i].price)+parseFloat(price.innerHTML);
    }
    price.innerHTML = number_format(total_price,2);
  }
}

function deleteFromBasket(product_id) {
  removeRowFromTable('cart','product'+product_id);
  document.getElementById('product_id'+product_id).style.visibility='hidden';
  document.getElementById('product_id'+product_id).style.display = 'none';
  receiveReq.open("GET", siteURL+'basket_remove.php?product_id='+product_id, true);
  receiveReq.onreadystatechange = handleReceiveRemove;
  receiveReq.send(null);
}

function handleReceiveRemove() {
  if (receiveReq.readyState==4){
    var basket_img = document.getElementById('basket_img');
    var price = document.getElementById('price');
    var cart_table = document.getElementById('cart_table');
    var cart_price = document.getElementById('cart_price');
    var basket = document.getElementById('basket');
    var response = eval("(" + receiveReq.responseText + ")");
    basket_img.src=siteURL+'images/sbasket.gif';
    if(parseFloat(response.messages.message[0].basket_price)==0){
      basket_img.src=siteURL+'images/korzina_empty.jpg';
      basket.innerHTML='Нет товаров';
      cart_table.innerHTML='Нет товаров';
    }
    price.innerHTML=number_format(response.messages.message[0].basket_price,2);
    cart_price.innerHTML=response.messages.message[0].basket_price;
  }
}

function convertingBasket(){
  var cnt = document.getElementById('cart').rows.length-3;
  var cart_price = document.getElementById('cart_price');
  var price = document.getElementById('price');
  var query_string='';
  var total_price = 0;
  var price_quant = 0;
  for(var i=0;i<cnt;i++){
    if(document.getElementById('_quantity'+i).value==0){
      deleteFromBasket(document.getElementById('_product'+i).value);
    }else{
      price_quant = parseFloat(document.getElementById('_price'+i).value)*parseFloat(document.getElementById('_quantity'+i).value);
      total_price = price_quant+total_price;
      document.getElementById('_total_price'+i).innerHTML=number_format(price_quant,2,'.',',');
      document.getElementById('quantity'+document.getElementById('_product'+i).value).innerHTML=document.getElementById('_quantity'+i).value;
      query_string += 'product'+i+'='+document.getElementById('_product'+i).value+'&quantity'+i+'='+document.getElementById('_quantity'+i).value+'&';
    }
  }
  if(query_string.length>1) query_string=query_string.substr(0,query_string.length-1)
  //alert(query_string);
  calculationProductInBasket(query_string);
  cart_price.innerHTML=total_price;
  price.innerHTML = number_format(total_price,2);
}

function pause(millis){
  var date = new Date();
  var curDate = null;
  do { curDate = new Date(); }
  while(curDate-date < millis)
}

function calculationProductInBasket(query_string){  receiveReq.open("GET", siteURL+'basket_converting.php?'+query_string, true);
  receiveReq.onreadystatechange = handleReceiveCalculation;
  receiveReq.send(null);
}


function handleReceiveCalculation() {
  if (receiveReq.readyState==4){
    //alert(receiveReq.responseText);
  }
}

function show(image,title,width,height){
  show_pic = window.open("/viewphoto.php?image="+image+"&title="+title,"_blank","status=no,toolbar=no,scrollbars=no,resizable=yes,width="+width+",height="+height+"");
  //show_pic.document.open();
  //show_pic.document.write("<html><head><title>"+title+"</title>");
  //show_pic.document.write("<style>body{margin:0px}</style></head>");
  //show_pic.document.write("<body leftmargin=\"0\" topmargin=\"0\">");
  //show_pic.document.write("<img style=\"cursor:hand\" src=\""+image+"\" onClick=\"window.close();\">");
  //show_pic.document.write("</body></html>");
  //show_pic.document.close();
}

function removeRowFromTable(table_id,row_id){
  var row = document.getElementById(row_id);
  var table = document.getElementById(table_id);
  var indexOfRow = row.rowIndex;
  table.deleteRow(indexOfRow);
}

function number_format(number, decimals, dec_point, thousands_sep){
  var exponent = "";
  var numberstr = number.toString ();
  var eindex = numberstr.indexOf ("e");
  if (eindex > -1)
  {
    exponent = numberstr.substring (eindex);
    number = parseFloat (numberstr.substring (0, eindex));
  }

  if (decimals != null)
  {
    var temp = Math.pow (10, decimals);
    number = Math.round (number * temp) / temp;
  }
  var sign = number < 0 ? "-" : "";
  var integer = (number > 0 ?
      Math.floor (number) : Math.abs (Math.ceil (number))).toString ();

  var fractional = number.toString ().substring (integer.length + sign.length);
  dec_point = dec_point != null ? dec_point : ".";
  fractional = decimals != null && decimals > 0 || fractional.length > 1 ?
               (dec_point + fractional.substring (1)) : "";
  if (decimals != null && decimals > 0)
  {
    for (i = fractional.length - 1, z = decimals; i < z; ++i)
      fractional += "0";
  }

  thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ?
                  thousands_sep : null;
  if (thousands_sep != null && thousands_sep != "")
  {
  for (i = integer.length - 3; i > 0; i -= 3)
      integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
  }

  return sign + integer + fractional + exponent;
}

function showOrderBlank(show){
  if(show){
    document.getElementById('order_blank').style.display = 'inline';
    document.getElementById('order_blank').style.visibility = 'visible';
  }else{
    document.getElementById('order_blank').style.display = 'none';
    document.getElementById('order_blank').style.visibility = 'hidden';
  }
}

function get(obj) {
   var error = 0;
   var email = obj['email'].value;
   var lname = obj['lname'].value;
   var fname = obj['fname'].value;
   var passwd = obj['passwd'].value;
   var confirm_passwd = obj['confirm_passwd'].value;
   var city = obj['city'].value;
   var phone = obj['phone'].value;
   var type = obj['type'].value;

   var company = obj['company'].value;
   var icq = obj['icq'].value;
   var birthday = obj['birthday'].value;

   var er_email=document.getElementById('er_email');
   var er_fname = document.getElementById('er_fname');
   var er_lname = document.getElementById('er_lname');
   var er_passwd = document.getElementById('er_passwd');
   var er_confirm_passwd = document.getElementById('er_confirm_passwd');
   var er_city = document.getElementById('er_city');
   var er_phone = document.getElementById('er_phone');

   er_email.innerHTML='';
   er_fname.innerHTML='';
   er_lname.innerHTML='';
   er_passwd.innerHTML='';
   er_confirm_passwd.innerHTML='';
   er_city.innerHTML='';
   er_phone.innerHTML='';

   if(!isValidEmail(email)){
     er_email.innerHTML = 'E-mail задан неверно'; error=1;
   }
   if(fname=='' || fname.length<2){
     er_fname.innerHTML = 'Имя не задано(не менее 2 символов)'; error=1;
   }
   if(lname=='' || lname.length<2){
     er_lname.innerHTML = 'Фамилия не задана(не менее 2 символов)'; error=1;
   }
   if(passwd=='' || passwd.length<3){
     er_passwd.innerHTML = 'Пароль не задан(не менее 3 символов)'; error=1;
   }else if(passwd!=confirm_passwd){
     er_passwd.innerHTML = 'Пароли не совпадают'; error=1;
   }
   if(city=='' || city.length<3){
     er_city.innerHTML = 'Город не указан'; error=1;
   }
   if(phone=='' || phone.length<5){
     er_phone.innerHTML = 'Телефон не указан'; error=1;
   }
   if(error==0){
     var poststr = "email=" + encodeURI(email) +
                   "&lname=" + encodeURI(lname) +
                   "&fname=" + encodeURI(fname) +
                   "&passwd=" + encodeURI(passwd) +
                   "&city=" + encodeURI(city) +
                   "&icq=" + encodeURI(icq) +
                   "&company=" + encodeURI(company) +
                   "&birthday=" + encodeURI(birthday) +
                   "&phone=" + encodeURI(phone);
     if(type=='registration') makePOSTRequest(siteURL+'confirm_registration.php', poststr);
     else if(type='profile') makePOSTRequest(siteURL+'update_profile.php', poststr);
   }
}

var http_request = false;
function makePOSTRequest(url,parameters) {
   http_request = false;
   if (window.XMLHttpRequest) { // Mozilla, Safari,...
      http_request = new XMLHttpRequest();
      if (http_request.overrideMimeType) {
        // set type accordingly to anticipated content type
         //http_request.overrideMimeType('text/xml');
         http_request.overrideMimeType('text/html');
      }
   } else if (window.ActiveXObject) { // IE
      try {
         http_request = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
         try {
            http_request = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (e) {}
      }
   }
   if (!http_request) {
      alert('Cannot create XMLHTTP instance');
      return false;
   }

   http_request.onreadystatechange = alertContents;
   http_request.open('POST', url, true);
   //http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=windows-1251");
   http_request.setRequestHeader("Content-length", parameters.length);
   http_request.setRequestHeader("Connection", "close");
   http_request.send(parameters);
}

function alertContents() {
   if (http_request.readyState == 4) {
      if (http_request.status == 200) {
         //alert(http_request.responseText);
         result = http_request.responseText;
         if(result=='1') document.getElementById('complete').innerHTML='<h3>Регистрация завершена.</h3>';
         else if(result=='2') document.getElementById('order_form').innerHTML='<h3>Заказ принят.<br />Менеджер свяжется с Вами в ближайшее время.</h3>';
         else if(result=='3') document.getElementById('complete').innerHTML='<h3>Профайл изменен.</h3>';
         else document.getElementById('er_email').innerHTML=result;
      } else {
         alert('There was a problem with the request.');
      }
   }
}


function isValidEmail(strEmail){
  validRegExp = /^[^@]+@[^@]+.[a-z]{2,}$/i;
  if (strEmail.search(validRegExp) == -1) return false;
  return true;
}



function validate_order(){
   var error = 0;
   var email = document.getElementById('cemail').value;
   var lname = document.getElementById('lname').value;
   var fname = document.getElementById('fname').value;
   var passwd = document.getElementById('cpasswd').value;
   var confirm_passwd = document.getElementById('confirm_passwd').value;
   var phone = document.getElementById('phone').value;
   var delivery_address = document.getElementById('delivery_address').value;
   var delivery_date = document.getElementById('delivery_date').value;
   var delivery_time = document.getElementById('delivery_time').value;
   var user_id = document.getElementById('user_id').value;
   var underground = document.getElementById('underground').value;
   var payment_method = document.getElementById('payment_method').value;
   var delivery_method = document.getElementById('delivery_method').value;
   var descr = document.getElementById('descr').value;
   var city = document.getElementById('city').value;

   var er_email=document.getElementById('er_email');
   var er_fname = document.getElementById('er_fname');
   var er_lname = document.getElementById('er_lname');
   var er_passwd = document.getElementById('er_passwd');
   var er_confirm_passwd = document.getElementById('er_confirm_passwd');
   var er_phone = document.getElementById('er_phone');
   var er_delivery_date = document.getElementById('er_delivery_date');
   var er_delivery_time = document.getElementById('er_delivery_time');
   var er_delivery_address = document.getElementById('er_delivery_address');

   er_email.innerHTML='';
   er_fname.innerHTML='';
   er_lname.innerHTML='';
   er_passwd.innerHTML='';
   er_confirm_passwd.innerHTML='';
   er_phone.innerHTML='';
   er_delivery_address.innerHTML='';
   er_delivery_date.innerHTML='';
   er_delivery_time.innerHTML='';

   if(!isValidEmail(email)){
     er_email.innerHTML = 'E-mail задан неверно'; error=1;
   }
   if(fname=='' || fname.length<2){
     er_fname.innerHTML = 'Имя не задано(не менее 2 символов)'; error=1;
   }
   if(lname=='' || lname.length<2){
     er_lname.innerHTML = 'Фамилия не задана(не менее 2 символов)'; error=1;
   }
   if(passwd=='' || passwd.length<3){
     er_passwd.innerHTML = 'Пароль не задан(не менее 3 символов)'; error=1;
   }else if(passwd!=confirm_passwd){
     er_passwd.innerHTML = 'Пароли не совпадают'; error=1;
   }
   if(phone=='' || phone.length<5){
     er_phone.innerHTML = 'Телефон не указан'; error=1;
   }

   if(delivery_address=='' || delivery_address.length<3){
     er_delivery_address.innerHTML = 'Укажите адрес доставки'; error=1;
   }

   if(delivery_date=='' || delivery_date.length<3){
     er_delivery_date.innerHTML = 'Дата доставки не указана'; error=1;
   }

   if(delivery_time=='' || delivery_time.length<3){
     er_delivery_time.innerHTML = 'Время доставки не указано'; error=1;
   }

   if(error==0){
   var poststr = "email=" + encodeURI(email) +
                 "&lname=" + encodeURI(lname) +
                 "&fname=" + encodeURI(fname) +
                 "&passwd=" + encodeURI(passwd) +
                 "&city=" + encodeURI(city) +
                 "&delivery_address=" + encodeURI(delivery_address) +
                 "&delivery_date=" + encodeURI(delivery_date) +
                 "&delivery_time=" + encodeURI(delivery_time) +
                 "&underground=" + encodeURI(underground) +
                 "&payment_method=" + encodeURI(payment_method) +
                 "&delivery_method=" + encodeURI(delivery_method) +
                 "&descr=" + encodeURI(descr) +
                 "&user_id=" + encodeURI(user_id) +
                 "&phone=" + encodeURI(phone);
   makePOSTRequest('/order.php', poststr);
   }
}

function replace_select(change){  if(change){
    document.getElementById('category_id').style.display='inline';
    document.getElementById('category_id').style.visibility='visible';
    document.getElementById('img_select').style.display='none';
    document.getElementById('img_select').style.visibility='hidden';

  }else{    document.getElementById('category_id').style.display='none';
    document.getElementById('img_select').style.display='inline';
    document.getElementById('category_id').style.visibility='hidden';
    document.getElementById('img_select').style.visibility='visible';  }
}

  //календарь

  var is=new Is();
    function Is(){
      this.agent=navigator.userAgent.toLowerCase();
      this.opera = (this.agent.indexOf('opera')!=-1) ? true:false;
      this.ie4 = ((this.agent.indexOf('msie')!=-1) && (this.agent.indexOf('opera')==-1)) ? true:false;
      this.ns6 = ((this.agent.indexOf('gecko')!=-1) && (this.agent.indexOf('opera')==-1)) ? true:false;
      this.ns4 = ((this.agent.indexOf('mozilla')!=-1) && (this.agent.indexOf('opera')==-1) && (this.agent.indexOf('msie')==-1) && (this.agent.indexOf('gecko')==-1)) ? true:false;
      return(1);
    }
    function ResizeMe(id){
      var DivHeight=document.getElementById(id).offsetHeight;
      if(is.ie4) var WinWidth=document.body.clientWidth;
      if(is.ns6) var WinWidth=window.innerWidth;
      //alert(WinWidth+'x'+DivHeight);
      resizeTo(WinWidth,DivHeight+100);
    }
    function my_close(t){
      if(t==27 || t==13 || t==32 || t==0) window.close();
    }
    // Calendar function
    var month_names=new Array('январе','феврале','марте','апреле','мае','июне','июле','августе','сентябре','октябре','ноябре','декабре');
    var day_names=new Array('пн','вт','ср','чт','пт','сб','вс');
    var day;
    var month;
    var year;
    var hour;
    var minute;
    var second;
    var clock_set=0;
    function openCalendar(form,field,type){
      var myWidth=250;
      var myHeight=250;
      var n=window.open('./calendar.html','calendar','width='+myWidth+',height='+myHeight+',menubar=no,status=no,scrollable=no,resizable=no,hotkeys=1,scrollbars=no,screenX='+(screen.availWidth-myWidth)/2+',screenY='+(screen.availHeight-myHeight)/2);
      n.focus();
      dateField=eval('document.'+form+'.'+field);
      dateType=type;
      return false;
    }
    function formatNum2(i,valtype){
      f=(i<10 ? '0':'')+i;
      if(valtype && valtype!=''){
        switch(valtype){
          case 'month': f = (f > 12 ? 12 : f); break;
          case 'day': f = (f > 31 ? 31 : f); break;
          case 'hour': f = (f > 24 ? 24 : f); break;
          default:
          case 'second':
          case 'minute': f = (f > 59 ? 59 : f); break;
        }
      }
      return f;
    }
    function formatNum4(i){
      return (i<1000 ? i<100 ? i<10 ? '000' : '00' : '0' : '')+i;
    }
    function initCalendar(){
      var dtype='date';
      var actVal='';
      var style='';
      if(!year && !month && !day){
        if(true){
          value=''; //current date, u can input himself
          if(dtype=='datetime' || dtype=='date'){
            if(dtype=='datetime'){
              parts=value.split(' ');
              value=parts[0];
              if(parts[1]){
                time=parts[1].split(':');
                hour=parseInt(time[0],10);
                minute=parseInt(time[1],10);
                second=parseInt(time[2],10);
              }
            }
            date=value.split('.');
            day=parseInt(date[0],10);
            month=parseInt(date[1],10)-1;
            year=parseInt(date[2],10);
          }else{
            year=parseInt(value.substr(0,4),10);
            month=parseInt(value.substr(4,2),10)-1;
            day=parseInt(value.substr(6,2),10);
            hour=parseInt(value.substr(8,2),10);
            minute=parseInt(value.substr(10,2),10);
            second=parseInt(value.substr(12,2),10);
          }
        }
        if(isNaN(year) || isNaN(month) || isNaN(day) || day==0){
          dt=new Date();
          year=dt.getFullYear();
          month=dt.getMonth();
          day=dt.getDate();
        }
        if(isNaN(hour) || isNaN(minute) || isNaN(second)){
          dt=new Date();
          hour=dt.getHours();
          minute=dt.getMinutes();
          second=dt.getSeconds();
        }
      }else{
        if(month>11){
          month=0;
          year++;
        }
        if(month<0){
          month=11;
          year--;
        }
      }
      if(document.getElementById) cnt=document.getElementById('calendar_data');
      else if(document.all) cnt=document.all['calendar_data'];
      cnt.innerHTML='';
      str='<table align="center" cellpadding="0" cellspacing="0" border="0"><tr><td><table class="cal" width="100%" cellpadding="3" cellspacing="0" border="0"><tr><td align="left" class="text1">Праздники в '+month_names[month]+'&nbsp;'+year+' г</td><td align="right" width="35"><a href="javascript:month--;initCalendar();"><img src="'+siteURL+'images/2_left.gif" border="0" style="padding-right:3px;"></a><a href="javascript:month++; initCalendar();"><img src="'+siteURL+'images/2_right.gif" border="0"></a></td></tr></table></td></tr><tr><td class="bord"><table width="100%" cellpadding="2" cellspacing="0" border="0"><tr>';
      for(i=0;i<7;i++){
        style=(i<5) ? 'cal' : 'cal2';
        str+='<th class="'+style+'">'+day_names[i]+'</th>';
      }
      str+='</tr><tr>';
      var firstDay=new Date(year,month,1).getDay();
      var lastDay=new Date(year,month+1,0).getDate();
      dayInWeek=0;
      firstDay=(firstDay+6)%7;
      for(i=0;i<firstDay;i++){
        str+='<td class="cal">&nbsp;</td>';
        dayInWeek++;
      }
      for(i=1;i<=lastDay;i++){
        if(dayInWeek==7){
          str+='</tr><tr>';
          dayInWeek=0;
        }
        dispmonth=1+month;
        if(dtype=='datetime' || dtype=='date') actVal=formatNum2(i,'day')+'.'+formatNum2(dispmonth,'month')+'.'+formatNum4(year);
        else actVal=''+formatNum2(i,'day')+formatNum2(dispmonth,'month')+formatNum4(year);
        if(i==day) style='sel';
        else if(i!=day && dayInWeek<5) style='cal';
        else if(i!=day && dayInWeek>4) style=' cal2';
        str+='<td class="'+style+'"><a href="javascript:getHolidays(\''+actVal+'\');">'+i+'</a></td>';
        dayInWeek++;
      }
      for(i=dayInWeek;i<7;i++) str+='<td class="cal">&nbsp;</td>';
      str+='</tr></table></td></tr></table>';
      cnt.innerHTML=str;
      if(dtype!='date' && !clock_set){
        if(document.getElementById) cnt=document.getElementById('clock_data');
        else if(document.all) cnt=document.all['clock_data'];
        str='<form class="clock"><input id="hour" type="text" size="2" maxlength="2" onblur="this.value=formatNum2(this.value,\'hour\')" value="'+formatNum2(hour,'hour')+'">&nbsp;:&nbsp;<input id="minute" type="text" size="2" maxlength="2" onblur="this.value=formatNum2(this.value,\'minute\')" value="'+formatNum2(minute,'minute')+'">&nbsp;:&nbsp;<input id="second" type="text" size="2" maxlength="2" onblur="this.value=formatNum2(this.value,\'second\')" value="'+formatNum2(second,'second')+'"></form>';
        cnt.innerHTML=str;
        clock_set=1;
      }
    }

    function getHolidays(date){
      receiveReq.open("GET", siteURL+'holidays.php?date='+date, true);
      receiveReq.onreadystatechange = handleReceiveHolidays;
      receiveReq.send(null);
    }

    function handleReceiveHolidays() {
      if (receiveReq.readyState==4){
        document.getElementById('holidays').innerHTML=receiveReq.responseText;
      }
    }

function openVideo(url){
    window.open(url,"videowindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=300,height=250");
}
