//Options for Everyone:

MonetarySymbol        = ' руб';
file_name_order       = 'http://petcatshop.ru/p_cart/';
//Options for Programmers: константы для отправки письма
ItemId          = 'ID_';
ItemQuantity    = 'QUANTITY_';
ItemPrice       = 'PRICE_';
ItemName        = 'NAME_';
ItemDiscount    = 'DISCOUNT_';
HiddenFields    = true;

strSorry        = "В корзину нельзя положить более 5 наименований товаров";
strAdded        = "отправлен в корзину";
strExist        = "уже в корзине";
strRemove       = "Удалить товар из корзины ?";
strDel          = "Очистить корзину ?";
strSUB          = "Итого, ";
strCartNo       = "Нет товаров в корзине";
strErrorFields  = "Проверьте правильность заполнения полей:\n\n";

//---------------------------------------------------------------------||
// FUNCTION:    cleanCart                                              ||
//---------------------------------------------------------------------||

function cleanCart()
{
 var iNumberOrdered = GetCookie("NumberOrdered");
 if ( iNumberOrdered == null ) iNumberOrdered = 0;
 if (confirm( strDel))
 {
  for ( i = 1; i <= iNumberOrdered; i++ ) {
   NewOrder = "Order." + i;
   DeleteCookie(NewOrder, "/");
  }
  DeleteCookie("NumberOrdered", "/");
  location.href=location.href;
 }
}

//---------------------------------------------------------------------||
// FUNCTION:    cleanCartAuto                                          ||
//---------------------------------------------------------------------||

function cleanCartAuto()
{
 SetCookie("NumberOrdered", 0, null, "/",".petcatshop.ru");
 var iNumberOrdered = GetCookie("NumberOrdered");
 if ( iNumberOrdered == null ) iNumberOrdered = 0;
 for ( i = 1; i <= iNumberOrdered; i++ ) {
 NewOrder = "Order." + i;
 DeleteCookie(NewOrder, "/");
 }
 DeleteCookie("NumberOrdered", "/");
}

//---------------------------------------------------------------------||
// FUNCTION:    CheckLetterForm   проверка формы обратной связи        ||
//---------------------------------------------------------------------||
function CheckLetterForm()
{
  var MissingFields = false;
  var strFields = "";
  if( letter.firstname.value == '' || !/^[а-яА-Я0-9-_ ]+$/.test(letter.firstname.value)){
	MissingFields = true;
	strFields = "Ваше имя\n";
  }
  if( letter.email.value == '' ){
	MissingFields = true;
	strFields += "Email\n";
  }
  else{
   if (!/^([\w-~_]+\.)*[\w-~_]+@([\w-_]+\.){1,3}\w{2,4}$/.test(letter.email.value))
   {
	strFields += "Неправильный e-mail адрес";
	alert( strErrorFields + strFields );
	return false;
   }
  }
  if (letter.comments.value == '' || !/^[а-яА-Яa-zA-Z0-9-_,\.\/\\!\? ]+$/.test(letter.comments.value)){
	MissingFields = true;
	strFields += "Текст письма\n";
  }
  else
  {
    if (letter.comments.value.length > 300)
     {
	strFields += "Длина поля 'текст письма' превышает 300 символов";
	alert( strErrorFields + strFields );
	return false;
     }
  }
  if( MissingFields )
  {
	alert( strErrorFields + strFields );
	return false;
  }
 return true;
}

//---------------------------------------------------------------------||
// FUNCTION:    CheckForm                                              ||
//---------------------------------------------------------------------||
function CheckForm()
{
  var MissingFields = false;
  var strFields = "";
  if( order.cart.value == '0' ){
	strFields = "У Вас нет товаров в корзине";
        alert( strFields );
        return false;
  }
  if( order.firstname.value == '' || !/^[а-яА-Я0-9-_]+$/.test(order.firstname.value)){
	MissingFields = true;
	strFields = "Имя\n";
  }
  if( order.lastname.value == '' || !/^[а-яА-Я0-9-_]+$/.test(order.lastname.value)){
	MissingFields = true;
	strFields += "Фамилия\n";
  }
  if( order.adres.value == '' || !/^[а-яА-Я0-9-_,\. ]+$/.test(order.adres.value)){
	MissingFields = true;
	strFields += "Адрес\n";
  }
  if( order.paytype.value == '' ){
	MissingFields = true;
	strFields += "Тип оплаты\n";
  }
  if( order.phone.value == '' || !/^[0-9-() ]+$/.test(order.phone.value)){
	MissingFields = true;
 	strFields += "Телефон\n";
  }
  if(order.fax.value !== '' && !/^[0-9-() ]+$/.test(order.fax.value)){
	MissingFields = true;
 	strFields += "Факс\n";
  }
  if( order.email.value == '' ){
	MissingFields = true;
	strFields += "Email\n";
  }
  else{
   if (!/^([\w-~_]+\.)*[\w-~_]+@([\w-_]+\.){1,3}\w{2,4}$/.test(order.email.value))
   {
	strFields += "Неправильный e-mail адрес";
	alert( strErrorFields + strFields );
	return false;
   }
  }
  if (!/^[а-яА-Я0-9-_,\. ]+$/.test(order.comments.value)){
	MissingFields = true;
	strFields += "Комментарии\n";
  }
  else
  {
   if (order.comments.value.length > 300)
   {
	strFields += "Длина поля 'комментарии' превышает 300 символов";
	alert( strErrorFields + strFields );
	return false;
   }
  }
  if( MissingFields )
  {
	alert( strErrorFields + strFields );
	return false;
  }
 cleanCartAuto();
 return true;
}

//---------------------------------------------------------------------||
// FUNCTION:    AddToCart                                              ||
//---------------------------------------------------------------------||
function AddToCart(thisForm) {
   var iNumberOrdered = 0;
   var AlreadyInCart = false;
   iNumberOrdered = GetCookie("NumberOrdered");
//   parse_cookie();
   if ( iNumberOrdered == null )
      iNumberOrdered = 0;
   if ( thisForm.ID == null )
      strID      = "";
   else
      strID      = thisForm.ID.value;
   if ( thisForm.QUANTITY == null || thisForm.QUANTITY.value == 0)
      strQUANTITY    = "1";
   else
      strQUANTITY    = thisForm.QUANTITY.value;
   if ( thisForm.NAME == null )
      strNAME        = "";
   else
      strNAME        = thisForm.NAME.value;
   if ( thisForm.PRICE == null )
      strPRICE       = "0.00";
   else
      strPRICE       = thisForm.PRICE.value;
   if ( thisForm.DISCOUNT == null )
      strDISCOUNT     = "0";
   else
      strDISCOUNT     = thisForm.DISCOUNT.value;

   for ( i = 1; i <= iNumberOrdered; i++ ) {
      NewOrder = "Order." + i;
      database = "";
      database = GetCookie(NewOrder);
      Token0 = database.indexOf("|", 0);		//ID
      Token1 = database.indexOf("|", Token0+1);		//Quanyity
      Token2 = database.indexOf("|", Token1+1);		//NAME
      Token3 = database.indexOf("|", Token2+1);		//PRICE
      Token4 = database.indexOf("|", Token3+1);		//DISCOUNT
      fields = new Array;
      fields[0] = database.substring( 0, Token0 );
      fields[1] = database.substring( Token0+1, Token1 );
      fields[2] = database.substring( Token1+1, Token2 );
      fields[3] = database.substring( Token2+1, Token3 );
      fields[4] = database.substring( Token3+1, database.length);

      if ( fields[0] == strID )
      {
        return tip('<b>' + strNAME + '</b> ' + strExist,'<a class=ext href="'+file_name_order+'" target="_top">Корзина</a>');
      }
   }
   if ( !AlreadyInCart ) {   //если нет такого тавара в корзине
      iNumberOrdered++;
      if ( iNumberOrdered > 5 ) // Если корзина уже полная
        return tip('<font color=#FF0000>' + strSorry + '</font>','<a class=ext href="'+file_name_order+'" target="_top">Оформить заказ</a>');
      else
      {
        dbUpdatedOrder = strID+"|"+strQUANTITY+"|"+strNAME+"|"+strPRICE+"|"+strDISCOUNT;
        strNewOrder = "Order." + iNumberOrdered;
        SetCookie(strNewOrder, dbUpdatedOrder, null, "/",".petcatshop.ru");
        SetCookie("NumberOrdered", iNumberOrdered, null, "/",".petcatshop.ru");
        return tip('<b>' + strNAME + '</b> ' + strAdded,'<a class=ext href="'+file_name_order+'" target="_top">Корзина</a>');
      }
   }
}

//---------------------------------------------------------------------||
// FUNCTION:    getCookieVal                                           ||
//---------------------------------------------------------------------||
function getCookieVal (offset) {
   var endstr = document.cookie.indexOf (";", offset);
   if ( endstr == -1 )
      endstr = document.cookie.length;
   return(unescape(document.cookie.substring(offset, endstr)));
}

//---------------------------------------------------------------------||
// FUNCTION:    GetCookie                                              ||
//---------------------------------------------------------------------||
function GetCookie (name) {
   var arg = name + "=";
   var alen = arg.length;
   var clen = document.cookie.length;
   var i = 0;
   while ( i < clen ) {
      var j = i + alen;
      if ( document.cookie.substring(i, j) == arg ) return(getCookieVal (j));
      i = document.cookie.indexOf(" ", i) + 1;
      if ( i == 0 ) break;
   }
   return(null);
}

//---------------------------------------------------------------------||
// FUNCTION:    SetCookie                                              ||
//---------------------------------------------------------------------||
function SetCookie (name,value,expires,path,domain,secure) {
   document.cookie = name + "=" + escape (value) +
                     ((expires) ? "; expires=" + expires.toGMTString() : "") +
                     ((path) ? "; path=" + path : "") +
                     ((domain) ? "; domain=" + domain : "") +
                     ((secure) ? "; secure" : "");
}

//---------------------------------------------------------------------||
// FUNCTION:    DeleteCookie                                           ||
//---------------------------------------------------------------------||
function DeleteCookie (name,path,domain) {
   if ( GetCookie(name) ) {
      document.cookie = name + "=" +
                        ((path) ? "; path=" + path : "") +
                        ((domain) ? "; domain=" + domain : "") 
   }
}
//---------------------------------------------------------------------||
// FUNCTION:    MoneyFormat                                            ||
//---------------------------------------------------------------------||
function moneyFormat(input) {
   var dollars = Math.floor(input);
   var tmp = new String(input);
   for ( var decimalAt = 0; decimalAt < tmp.length; decimalAt++ ) {
      if ( tmp.charAt(decimalAt)=="." )
         break;
   }
   var cents  = "" + Math.round(input * 100);
   cents = cents.substring(cents.length-2, cents.length)
           dollars += ((tmp.charAt(decimalAt+2)=="9")&&(cents=="00"))? 1 : 0;
   if ( cents == "0" )
      cents = "00";
   return(dollars + "." + cents);
}

//---------------------------------------------------------------------||
// FUNCTION:    RemoveFromCart                                         ||
//---------------------------------------------------------------------||
function RemoveFromCart(RemOrder) {
   if ( confirm( strRemove ) ) {
      NumberOrdered = GetCookie("NumberOrdered");
      for ( i=RemOrder; i < NumberOrdered; i++ ) {
         NewOrder1 = "Order." + (i+1);
         NewOrder2 = "Order." + (i);
         database = GetCookie(NewOrder1);
         SetCookie (NewOrder2, database, null, "/",".petcatshop.ru");
      }
      NewOrder = "Order." + NumberOrdered;
      SetCookie ("NumberOrdered", NumberOrdered-1, null, "/",".petcatshop.ru");
      DeleteCookie(NewOrder, "/");
      location.href=location.href;
   }
}

//---------------------------------------------------------------------||
// FUNCTION:    ManageCart                                             ||
//---------------------------------------------------------------------||


function ManageCart() {
   var iNumberOrdered = 0;    //Number of products ordered
   var fTotal         = 0;    //Total cost of order
   var summa          = 0;    //Сумма	                    
   var strTotal       = "";   //Total cost formatted as money
   var strOutput      = "";   //String to be written to page

   iNumberOrdered = GetCookie("NumberOrdered");
   if ( iNumberOrdered == null )
      iNumberOrdered = 0;
   strOutput = "<div align=right><TABLE class=fnt cellspacing=0 cellPadding=5 width=98% border=0><TR bgcolor=#AFCCDE align=center height=27>" +
               "<TD><B>№</B></TD>" +
               "<TD><B>Наименование</B></TD>" +
               "<TD><B>Цена руб.</B></TD>" +
               "<TD width=102 align=center><B>Действие</B></TD></TR>";
   if ( iNumberOrdered == 0 )
   {
     strOutput += "<TR height=60><TD bgColor=#fafafa align=center COLSPAN=7><font size=3>" + strCartNo + "</font></TD></TR>";
   }
   strOutput +="<input type=hidden name=cart value="+iNumberOrdered+">";
   for ( i = 1; i <= iNumberOrdered; i++ )
   {
      NewOrder = "Order." + i;
      database = "";
      database = GetCookie(NewOrder);
      Token0 = database.indexOf("|", 0);
      Token1 = database.indexOf("|", Token0+1);
      Token2 = database.indexOf("|", Token1+1);
      Token3 = database.indexOf("|", Token2+1);
      Token4 = database.indexOf("|", Token3+1);
      fields = new Array;
      fields[0] = database.substring( 0, Token0 );          		// Product ID
      fields[1] = database.substring( Token0+1, Token1 );		// Quantity
      fields[2] = database.substring( Token1+1, Token2 );		// Product Name 
      fields[3] = database.substring( Token2+1, Token3 );		// Price
      fields[4] = database.substring( Token3+1, database.length );	// Discount
      summa     = (fields[1]*parseInt(fields[3]));
      summa     = summa-summa*fields[4]*0.01;
      fTotal   += summa;
      strTotal  = moneyFormat(fTotal);
      strOutput += "<TR bgColor=#fafafa><TD align=right>"  + fields[0] + "</TD>";
      strOutput += "<TD>" + fields[2] + "</TD>";
      strOutput += "<TD>" + moneyFormat(summa) + "</TD>";
      strOutput += "<TD ALIGN=CENTER><input class=button type=button value='удалить' onClick='RemoveFromCart("+i+")'></TD></TR>";
      if ( HiddenFields )
      {
         strOutput += "<input type=hidden name=" + ItemId        +i+ " value="  + fields[0] + ">";
         strOutput += "<input type=hidden name=" + ItemQuantity  +i+ " value="  + fields[1] + ">";
         strOutput += "<input type=hidden name=" + ItemName      +i+ " value='" + fields[2] + "'>";
         strOutput += "<input type=hidden name=" + ItemPrice     +i+ " value="  + fields[3] + ">";
         strOutput += "<input type=hidden name=" + ItemDiscount  +i+ " value="  + fields[4] + ">";
         strOutput += "<input type=hidden name=max value="+iNumberOrdered+">";
         strOutput += "<input type=hidden name=total value='"+strTotal+"'>";
      }
   }
   strOutput += "<TR height=27 bgcolor=#E7EDEB><TD COLSPAN=2><B>"+strSUB+" руб.</B></TD>";
   strOutput += "<TD COLSPAN=2 align=center><B>" + strTotal + "</B></TD></TR></table></div>&nbsp;";
   document.write(strOutput);
   document.close();
}

//---------------------------------------------------------------------||
// FUNCTION:    tip                                                    ||
//---------------------------------------------------------------------||

function tip(text,link)
{  
 setTimeout('return hide_tip()', 4000); 
 var t; 
 t=document.getElementById("tip"); 
 if (!window.opera) { 
 x=window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft + 8; 
 y=window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop + 20; 
 } else { 
 x=window.event.clientX+8; 
 y=window.event.clientY+20; 
 } 

 t.innerHTML="<table class=fnt cellspacing=0 border=0 width=160><tr height=30 valign=top><td>"+link+"</td>"+
 "<td align=right><a href='#' onclick='return hide_tip()'><img src='http://petcatshop.ru/images/x.gif' height=13"+
 " width=13 border=0 alt='закрыть'></a></td></tr>"+
 "<tr><td colspan=2>"+text+"</td></tr></table>"; 

 if (screen.width-x<150) x-=150; 
 t.style.left=x + "px"; 
 t.style.top=y + "px"; 
} 

function hide_tip()
{ 
 var t; 
 t=document.getElementById("tip"); 
 t.innerHTML=""; 
 t.style.left="-100px"; 
 t.style.top="-100px"; 
}

//---------------------------------------------------------------------||
// FUNCTION:    enlare image                                           ||
//---------------------------------------------------------------------||

	var newImage = null;
	var oldImage = null;
	function showImage(id) {

		newImage = document.getElementById('lImage'+id);
		if( oldImage ) {
			oldImage.style.display="none";
		}
		if( newImage ) {
			newImage.style.display="block";
			oldImage = newImage;
		}
	}
	function closeView(id) {
		document.getElementById('lImage'+id).style.display="none";
	}

