IS_AJAX_REQUEST_VAR = "JSA";

AJAX_SEND_HEADER_ID = "X-Trans-By";

AJAX_RESPONSE_HEADER_ID = "X-Is-Response-Error";

AJAX_ERROR_CODE = "1";

AJAX_OK_CODE = "0";

TPL_TPL_VAR = "main_content";

AJAX_UPDATE_CONTAINER_VAR = "_cont_update";

LOADING_IMG = '<img src="templates/default/images/img/loading.gif">';

LAOGING_LARGE_IMG = 'templates/default/images/img/loading_large.gif';

var checkedAccountForm = '';

        var imgOnStr = "-ov";
        
        function ion(id){
                
                id.src = id.src.replace(imgOnStr + ".", ".");
                
        id.src = id.src.substring(0, id.src.length-4) + imgOnStr +
        id.src.substring(id.src.length-4, id.src.length);
                
        }
        function ioff(id){
                
                id.src = id.src.replace(imgOnStr + ".", ".");
                
        }
        
        
function showDiv(divid){
	
	$(divid).style.visibility = 'visible';
	
}

function hideDiv(divid){
	
	$(divid).style.visibility = 'hidden';
	
}
        
function qtyPlus(el){
	
	el.value = parseFloat(el.value) + 1;
	
	
}
        
function qtyMinus(el){
	
	el.value = parseFloat(el.value) - 1;
	
	if( parseFloat(el.value) < 1) el.value = 1;
	
}

function popupWindow(url, title)
{
        openMWin( url, title, 600, 390);
}

function setImage( thumbLink, mainId, thumbUrl, realUrl )
{
        var currentImage = thumbLink.getElementsByTagName( 'img' ).item( 0 );
	
	var mainImage    = $( mainId );
	
	var oldSrc = mainImage.src;
	mainImage.src = currentImage.src.replace( thumbUrl, realUrl );
	
	thumbLink.onmouseout = function()
	                       {
			                 mainImage.src = oldSrc;
			       }       
}



function dropItems(idOfDraggedItem,targetId,x,y)
{
        if(targetId=='dropBox'){        // Item dropped on <div id="dropBox">
                var obj = document.getElementById(idOfDraggedItem);
                if(obj.parentNode.id=='dropContent2')return;
                //document.getElementById('dropContent2').innerHTML = 
                   document.getElementById('dropContent2').innerHTML + "Hello";  // Appending dragged element as child of target box
             add2cart(obj.title);
       }
}

function add2cart(pid)
{
        loadingProduct();
	
        new Ajax.Request( 'shopping_cart_aj.php?act=add&p_id='+pid+'&qnt=1', 
	                  { 
			       method: 'get', 
			       onSuccess: function(){
			                                reloadcart();
			                            }
			  });
}

function onDragFunction(cloneId,origId)
{
        self.status = 'Started dragging element with id ' + cloneId;
        var obj = document.getElementById(cloneId);

}

function reloadcart()
{

             new Ajax.Request( 'shopping_cart.php?v=1', 
	                                             { method: 'get',  
						       onSuccess: function( trans){  
						                                       $( 'cartContent' ).innerHTML = trans.responseText; 
										       $( 'theCart' ).scrollTop = $( 'theCart' ).scrollHeight;
						                                  } 
						     });
}

function removeElement(link, pid, eid, qnt )
{
	  link.parentNode.parentNode.innerHTML = '<div style="text-align: center; padding-top: 20px; padding-bottom: 20px">' + LOADING_IMG + '</div>';
	  new Ajax.Request( 'shopping_cart_aj.php?act=remove&p_id='+pid+'&qnt='+qnt, { method: 'get', onSuccess: reloadcart});
}

function fly2trash(pid, eid, qnt){

        updaterealc = 1;
        new Ajax.Request( 'shopping_cart_aj.php?act=remove&p_id='+pid+'&qnt='+qnt, { method: 'get', onSuccess: reloadcart});

        var AddCartFly = new fly( document.getElementById(eid) );
        AddCartFly.target( document.getElementById('dropContent2') );
        AddCartFly.calc_way(100, 50 );
       // AddCartFly.finish_fly = function (){ alert('ok');}
        AddCartFly.fly_now();


}

function openTab( linkCont, tabPrefix, tabID, tabCount )
{
     var tabs = $( linkCont ).getElementsByTagName( 'a' );
     
     for( var cT = 0; cT < tabs.length; cT++ )
     {
               if( tabID == cT )
	       {
	            tabs[ cT ].className = 'selected';
		    $( tabPrefix + cT ).style.display = 'block';
	       }
	       else
	       {
	            tabs[ cT ].className = '';
		    $( tabPrefix + cT ).style.display = 'none';
	       }
     }
     

}

function startscroll(){

        scrolling_enabled = "1";

}
function stopscroll(){

        scrolling_enabled = "";

}

  function goTop( divid )   
  {
       $( divid ).scrollTop =  0;  
  }
  
  function goBottom( divid )   
  {
       $( divid ).scrollTop =  $( divid ).scrollHeight;  
  }

  function goLeft( divid )   
  {
       $( divid ).scrollLeft =  0;  
  }

  function goRight( divid )   
  {
       $( divid ).scrollLeft =  $( divid ).scrollWidth;  
  }

  function moveUp(divid) {
                var divid2 = divid;
        divid = document.getElementById(divid);

        divid.scrollTop = divid.scrollTop - 5;
        if(divid.scrollTop < 0){
                divid.scrollTop = 0;
                stopscroll();
        }
        else{
        if(scrolling_enabled)
        setTimeout("moveUp('"+divid2+"')", 50);

        }

  }
    function moveDown(divid) {
        var divid2 = divid;
        divid = document.getElementById(divid);

        divid.scrollTop = divid.scrollTop + 10;

        if(scrolling_enabled)
        setTimeout("moveDown('"+divid2+"')", 100);
  }

    function moveLeft(divid) {

        var divid2 = divid;
        divid = document.getElementById(divid);


        divid.scrollLeft = divid.scrollLeft - 10;
        if(divid.scrollLeft < 0){
                divid.scrollLeft = 0;
                stopscroll();
        }
        else{
        if(scrolling_enabled)
        setTimeout("moveLeft('"+divid2+"')", 100);

        }

  }
    function moveRight(divid) {
    

        var divid2 = divid;
        divid = document.getElementById(divid);

    
        divid.scrollLeft = divid.scrollLeft + 5;

        if(scrolling_enabled)
        setTimeout("moveRight('"+divid2+"')", 50);
  }

function fly2cart(pid, eid, qnt){


        new Ajax.Request( 'shopping_cart_aj.php?act=add&p_id='+pid+'&qnt='+qnt, { method: 'get', onSuccess: reloadcart});
        var AddCartFly = new fly( document.getElementById(eid) );
        AddCartFly.target( document.getElementById('dropContent2') );
        AddCartFly.calc_way(10, 10 );
       // AddCartFly.finish_fly = function (){ alert('ok');}
        AddCartFly.fly_now();



}

function loadingProduct()
{
       var cart = $( 'theCart' )   ;

       if( !cart )
       {   
           var cart = $( 'cartContent' )   ;

       }	   
       
       if( !cart )
       {
          return;
       }
       
       var loadImg = document.createElement( 'div' );
       loadImg.innerHTML = LOADING_IMG;
       loadImg.style.textAlign   = 'center';
       loadImg.style.paddingTop   = '20px';
       loadImg.style.clear       = 'both';
   
       
       cart.appendChild(  loadImg );
       cart.scrollTop = cart.scrollHeight;
}


function addProduct( formName, eid )
{

       var params = Form.serialize( formName );
       
       loadingProduct();

       new Ajax.Request( 'shopping_cart_aj.php?'+params,
                         {
			    method: 'get',
			    parameters: params,
			    onSuccess: reloadcart
			 }
                          );
	closeMWin();
}

function updateCartProduct( formName, eid )
{
        var params = Form.serialize( formName );

	
	
	 new Ajax.Request( 'shopping_cart_aj.php',
                         {
			    method: 'post',
			    parameters: params,
			    evalScripts: 1,			      
			    onSuccess: function() {
			                            closeCSlide();
						    openUrl( 'maincontent', 'shopping_cart.php', false, false);
						  }
			    
			 }
                          );

	
}

function addLink( pid, qty )
{
	
      // loadingProduct();
       
       var params = '?act=add&p_id=' + pid + '&products_qty=' + qty + '&products_id=' + pid;

       new Ajax.Request( 'shopping_cart_aj.php' + params,
                         {
			    method: 'get',
			    onSuccess: function()
			               {
			               	location.href = 'shopping_cart.php';
	return true;
			                            //reloadcart();
			                            if( inCart )
						    {
				                        //openUrl('maincontent','shopping_cart.php', false, '2');
				                        
						    }	
				      }    
			 }
                          );

}

function removeCart( remLink )
{
        //alert( remLink );

	new Ajax.Updater( 'cartMainContent', 
	                    remLink.href + "&v=2",
			   {
			      method: "post",
			      onSuccess: reloadcart			      
			   }
	                );

}

function openUrl( whatToUpdate, url, loader, noLoading  )
{

       var mainContent = $( whatToUpdate );
       var loaderContent = $( loader );

      
       var loadString = '<img src="'+ LAOGING_LARGE_IMG  +'" style="margin-top: 100px; margin-bottom: 50px;">';

       if( noLoading )
       {
            switch( noLoading )
            {
              case '2':
                  loadString = '<div style="width: 100%; clear: both; text-align: center; margin: 90px 0px 20px 0;"><img src="'+ LAOGING_LARGE_IMG +'" border="0" style="border: 0;" ></div>';
              break;
              
              case '3':
                  loadString = '<div style="width: 100%; clear: both; text-align: center; margin: 90px 0px 20px 0;"><img src="'+ LAOGING_LARGE_IMG +'" border="0" style="border: 0;" ><br>Calculating Shipping Prices</div>';
              break;
	      	      

              default:
                 loadString = noLoading;
              break;
            }

       }
       if( mainContent && (noLoading != false ))
       {
              if( !loaderContent )
              {
                 mainContent.innerHTML = loadString;
              }
              else if( noLoading != true )
              {
                 loaderContent.innerHTML = loadString;
              }
       }

     
        new Ajax.Request( url,  {
	                                           evalScripts: 1,
						   method: 'GET',
						   onSuccess: function( response )
						              {
							            mainContent.innerHTML = response.responseText;
							            div = document.createElement( 'div' );
							            div.innerHTML = response.responseText;
							            var scripts = div.getElementsByTagName('script');
							            for( cl=0; cl<scripts.length; cl++ ) {
											if( scripts.item(cl).innerHTML ) {
												eval(scripts.item(cl).innerHTML);
											}
										}
							      	  }
	
	                                      }
					      
					      );

    
       return false;

}

function submitCheckoutForm( whatToUpdate, formName){
	
	var checked = false;
	
	if( boxes  = document.checkout_payment.payment )
	{
		 for( var cB = 0; cB < boxes.length; cB++ )
		 {
		 	 if( boxes[ cB ].checked )
		 	 {
		 	 	checked = true;
		 	 }
		 	
		 } 
		
	}

	
	if(checked || ($('cot_gv') && $('cot_gv').checked) || !boxes.length )
	
	 submitForm(whatToUpdate, formName);
	
	 else
	 alert("Please selected the desired payment method for your order!");
	 
	 return false;
}

function submitForm( whatToUpdate, formName, noLoading, method )
{
       var params  = Form.serialize( formName );

       var mainContent = $( whatToUpdate );

       var url = $( formName ).action;
       
       if( !method )
       {
         var  method = "post";
       }
       
       if( method == "get" )
       {
            if( url.indexOf( '?' ) != -1 )
	      url = url + '&' + params;
	    else
	      url = url + '?' + params;
       }

       if( mainContent )
       {
            if( noLoading == true)
            {} else {
	       mainContent.innerHTML = '<div style="width: 100%; clear: both; text-align: center; margin: 90px 0px 20px 0;"><img src="'+ LAOGING_LARGE_IMG +'" ></div>';
            }

	    new Ajax.Updater( whatToUpdate, url,
                                          {
                                             method: method,
                                             postBody: params,
                                             evalScripts: 1
                                           });
            // if we are processing the search form - we will change the subtitle too :::
            if( formName=='searchForm' ) {
            	document.getElementById('subTile').innerHTML = 'Search Result for "' + params.substring(params.indexOf('=')+1) + '"';
			}
       }
       else
       {
       	    new Ajax.Request(  url,
	                               {
                                             method: method,
                                             postBody: params,
                                             evalScripts: 1
                                           });
       }    

       return false;
}

function loadTotal()
{
    var myForm = $('mForm');
    var shipValue = "";
    
    if( myForm )
    {
         var shipEls = myForm.shipping;
	 
	 if( shipEls.length )
	 { 
	     for(var cH = 0; cH < shipEls.length; cH++)
	     {
	        if( shipEls[ cH ] )
		{
		   shipValue = shipEls[ cH ].value;
		}
	     }

	 }
    }
  openUrl( 'total', 'checkout_shipping.php?action=subtotal&shipping=' + shipValue + '&ajr=1', false, '2');
}

function subscribe( formName )
{
   var params  = Form.serialize( formName );

   url = $( formName ).action;
   
   $( 'nContent' ).innerHTML = "<div align=\"center\">" + LOADING_IMG + "</div>";
   
   new Ajax.Updater( 'nContent', url,
                                          {
                                             method: "post",
                                             postBody: params,
                                             evalScripts: 1
                                           });


}

/*****************************************************
  product list filtering
****************************************************/

function selectBrand( link )
{
      var  parentDiv = link.parentNode;

      if(  parentDiv )
      {	    
            if( parentDiv.getAttribute( "checked" ) )
	    {
		parentDiv.removeAttribute( "checked" );
                parentDiv.style.textAlign = "left";
	        parentDiv.style.backgroundColor = "";
	        parentDiv.style.borderBottom = "";
            }
	    else
	    {
	        parentDiv.setAttribute( "checked", true );
	        parentDiv.style.textAlign = "right";
	        parentDiv.style.backgroundColor = "#E2F1FF";
	        parentDiv.style.borderBottom = "1px solid #fff";
	    }			
      }
}


function submitSort( sortDropId, pathParams )
{
      var sortDrop  = $( sortDropId );
      var sortString = "";
      
      if( sortDrop )
      {
              var inputs = sortDrop.getElementsByTagName( 'input' );
	      

	      for( var cI = 0; cI < inputs.length; cI++ )
	      {
	           if( inputs[ cI ].checked )
		   {
	              sortString = sortString + "&" + inputs[ cI ].name  + "=" + inputs[ cI ].value + "";
		   }		          
	      }  

      }
      
      pathParams = pathParams + sortString.substring(1);
      openUrl( 'maincontent', pathParams, false, '2');
}

function submitPrices( priceDropId, pathParams )
{
      var priceDrop  = $( priceDropId );
      var priceString = "";
      
      if( priceDrop )
      {
              var inputs = priceDrop.getElementsByTagName( 'select' );
	      
	      for( var cI = 0; cI < inputs.length; cI++ )
	      {
	          priceString = priceString + "&" + inputs[ cI ].name  + "=" + inputs[ cI ].value + "";
	      }
	      

      }
      
      pathParams = pathParams + priceString.substring(1);
      openUrl( 'maincontent', pathParams, false, '2');

}

function submitBrands( brandDropId, pathParams )
{

      var brandDrop = $( brandDropId );
      var brandArray = new Array();
      var brandString = "";
      
      if( brandDrop )
      {
           var brandDivs = brandDrop.getElementsByTagName( 'div' );
	   
	   for( var cD = 0 ; cD < brandDivs.length; cD++ )
	   {
	        if( brandDivs[cD].getAttribute( "checked" )  )
		{
		    brandArray[ brandArray.length ] = brandDivs[cD].getElementsByTagName( 'a' ).item( 0 ).id.replace( 'br', '');
		}
	   }
	   brandString = brandArray.join( "," );

           pathParams = pathParams + 'brandid=' + brandString;

	   openUrl( 'maincontent', pathParams, false, '2');
      }
      
   
}


function goBrandEffect()
{
     var brandElement = $( 'brandDrop' );
     
     if( brandElement.open != true )
      brandEffect =  new Spry.Effect.Slide( 'brandFilter' , {duration: 2000, from: '0px', to: '280px', toggle: true, setup: function(){ hideFlow( ['brandDrop'] ) }, finish: function(){ showFlow( ['brandDrop'] ) } } );

     brandEffect.start();
}


function goPriceEffect()
{
      var priceElement = $( 'priceDrop' );
     
     if( priceElement.open != true )
       priceEffect =  new Spry.Effect.Slide( 'priceFilter' , {duration: 2000, from: '0px', to: '280px', toggle: true, setup: function(){ hideFlow( ['priceDrop'] ) }, finish: function(){ showFlow( ['priceDrop'] ) } } );

      priceEffect.start();
}

function goSortEffect()
{
      var sortElement = $( 'sortDrop' );
     
     if( sortElement.open != true )
       sortEffect =  new Spry.Effect.Slide( 'sortFilter' , {duration: 2000, from: '0px', to: '280px', toggle: true, setup: function(){ hideFlow( ['sortDrop'] ) }, finish: function(){ showFlow( ['sortDrop'] ) } } );

      sortEffect.start();
}

function closeBannerBox( divid ){
	
	$(divid).style.display = 'none';
	
	
	new Ajax.Updater( divid, 'index.php',
                                          {
                                             method: "get",
                                             parameters: 'closeBannerBox=' + divid,
                                             evalScripts: 1
                                           });
	
	
}

function validEmail(email)
{
apos=email.indexOf("@")
dotpos=email.lastIndexOf(".")
if (email == "" || apos<1 || dotpos-apos<2)
{
return false
}
return true
}

 
 function submitCreateAccountForm(){

 	if(checkCreateAccountForm())
 	return submitForm( 'maincontent', formName, '', 'post' );
 	else
 	return false;
 	
 	
 }
 
 
 function checkCreateAccountForm(){
 	
 var fError  = '';
 
 var formName = 'create_account';
 
 var objForm = document.create_account;
 
 
checkedAccountForm = 1;

 if($('genderValidationContent')){

 	if(!objForm.gender[0].checked && !objForm.gender[1].checked) {
 	$('genderValidationContent').innerHTML = '<span style="color: red;">&nbsp;Required</span>'; 
 	fError = 1; 
 	}
 	else $('genderValidationContent').innerHTML = "*"; 
 
 }
 
 
 for(i = 0; i <= objForm.length-1; i++){

		if(objForm.elements[i].getAttribute("required") == "1"){
		if(!objForm.elements[i].value || objForm.elements[i].value.length < objForm.elements[i].getAttribute("minlength")){
			objForm.elements[i].style.backgroundColor = "#F3FDE3";
			
			
	 	if($(objForm.elements[i].name + "Error")){
 			$(objForm.elements[i].name + "Error").style.visibility = "visible";
 			$(objForm.elements[i].name + "Error").style.position = "";
 	}
			
			fError = 1;
			
		}
		else{
		
			objForm.elements[i].style.backgroundColor = "";
		if($(objForm.elements[i].name + "Error"))
			$(objForm.elements[i].name + "Error").style.visibility = "hidden";
 			$(objForm.elements[i].name + "Error").style.position = "absolute";
		
		}
		
		}
		
		if(objForm.elements[i].getAttribute("required") == "email"){
			if(!checkCreateAccountEmail(objForm.elements[i])) fError = 1;
		
		}
		
 }
 
 	
 if(fError){
return false;
 }
 else
 return true;
 
 } 
 
 
 
 
 function createAccountFormPassword(obj){
 	
 	
 		
 	if(obj.password.value.length < 6){
			obj.password.style.backgroundColor = "#F3FDE3";
			
		$('passwordError').innerHTML = '<span style="color: red;">&nbsp;Too short</span>'; 
			return false;
			
		}
		else{
			$('passwordError').innerHTML = '<span style="color: green;">&nbsp;OK</span>'; 
			obj.password.style.backgroundColor = "";
 			
		}

		createAccountFormPassword2(obj);
		
 }
 
 function createAccountFormPassword2(obj){
 	
 	if(obj.confirmation.value.length < 6){
			obj.confirmation.style.backgroundColor = "#F3FDE3";
			
		$('confirmationError').innerHTML = '<span style="color: red;">&nbsp;Too short</span>'; 
			return false;
			
		}
 	
 		else{
 	if(obj.password.value != obj.confirmation.value){
			obj.confirmation.style.backgroundColor = "#F3FDE3";
			
		$('confirmationError').innerHTML = '<span style="color: red;">&nbsp;Passwords Not match</span>'; 
			return false;
			
		}
		else{
			$('confirmationError').innerHTML = '<span style="color: green;">&nbsp;OK</span>'; 
			obj.confirmation.style.backgroundColor = "";
 			
		}
 		}
		
 }
 
function checkCreateAccountEmail(obj){
 	
 	if(!validEmail(obj.value)){
			
			obj.style.backgroundColor = "#F3FDE3";
			
		$('emailValidationContent').innerHTML = '<span style="color: red;">&nbsp;Invalid E-mail</span>'; 
			return false;
			
		}
		else{
			$('emailValidationContent').innerHTML = "*";
			obj.style.backgroundColor = "";
 			
 return true;	
		}
		
 	
 }
 
