var imagePath = './templates/client_admin/images/';
var currDay, currMonth, currYear;
/**
* Toggles the check state of a group of boxes
*
* Checkboxes must have an id attribute in the form cb0, cb1...
* @param The number of box to 'check'
* @param An alternative field name
*/

function ge(target) {
  return document.getElementById(target);
}

function siteXMLHttpRequest()
{
   var request = null;
   if(window.XMLHttpRequest)
   {   //moz, safari1.2+, opera8
      try
      {
         request = new XMLHttpRequest();
         request.overrideMimeType('text/xml');
      }
      catch(e)
      {
         request = null;
      }
   }
   else if(window.ActiveXObject)
   {   //ie5.5+
      try
      {
         request = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch(e)
      {
         try
         {
         request = new ActiveXObject("Microsoft.XMLHTTP");
         }
         catch(e)
         {
            request = null;
         }
      }
   }
   return request;
}

function checkAll( n, fldName ) 
{
  if (!fldName) 
  {
     fldName = 'id';
  }
  for (var j = 1; j <= n; j++)
  {
    box = eval(document.getElementById(fldName + j));
    toggle = eval(document.getElementById('toggle'));
    if (toggle.checked)
    {
      box.checked = true;
      document.adminForm.boxchecked.value++;
    }
    else
    {
      box.checked = false;
      document.adminForm.boxchecked.value--;
    }
  }
}

function checkAllCart() 
{
  $("input[@id*=id]").attr({checked:true});
}

function uncheckAllCart() 
{
  $("input[@id*=id]").attr({checked:false});
}

function isChecked(isitchecked)
{
	if (isitchecked == true){
		document.adminForm.boxchecked.value++;
	}
	else {
		document.adminForm.boxchecked.value--;
	}
}

function isCheckedSite(isitchecked)
{
	if (isitchecked == true){
		document.siteForm.boxchecked.value++;
	}
	else {
		document.siteForm.boxchecked.value--;
	}
}



/**
* Default function.  Usually would be overriden by the component
*/
function submitbutton(pressbutton) 
{
	submitform(pressbutton);
}

/**
* Submit the admin form
*/
function submitform(pressbutton){
	document.adminForm.task.value=pressbutton;
	try 
	{
		document.adminForm.onsubmit();
	}
	catch(e)
	{
	
	}
	document.adminForm.submit();	
	
}


/**
* Default function.  Usually would be overriden by the component
*/
function submitbuttonsite(pressbutton) 
{
	submitform1(pressbutton);
}

/**
* Submit the admin form
*/
function submitform1(pressbutton){
	document.siteForm.task.value=pressbutton;
	try 
	{
		document.siteForm.onsubmit();
	}
	catch(e)
	{
	
	}
	document.siteForm.submit();	
	
}



function hideMainMenu()
{
	document.adminForm.hidemainmenu.value=1;
}

function confirmSubmit()
{
  var agree=confirm("Are you sure you wish to continue?");
  if (agree)
    return true ;
  else
    return false ;
}

var form = document.adminForm;
function moveItems (from, to, bitstatus)
{
   var selindex;
   
   //document.getElementById('changesWereMade').innerHTML='Changes were made to group attachments (don\'t forget to apply changes) *';
   
   while ((selindex=from.selectedIndex) != -1)
   {
       var i;
       var item = new Option(from.options[selindex].text,
                             from.options[selindex].value,
                             false, true);

       from.options[selindex] = null;
       //to.options[to.options.length] = item;

       // find spot to put new item
       for (i=0; i<to.options.length && to.options[i].text < item.text; i++) { }
       var newindex = i;

       // move everything else down
       for (i=to.options.length; i>newindex; i--) {
                to.options[i] = new Option(to.options[i-1].text,
                                      to.options[i-1].value,
                                      false,
                                      to.options[i-1].selected);
       }
       to.options[newindex] = item;

       // turn the groupmask bit on or off
       var groupId = item.value;
       var element = document.forms['adminForm'].elements['groupsStats'+groupId];
       element.value = bitstatus;
   }
}

function moveIn ()
{
   var form = document.adminForm;
   var inlist = form.groupsIn;
   var outlist = form.groups;
   moveItems(document.adminForm.groups, document.adminForm.groupsIn, '1');
}
function moveOut ()
{
   moveItems(document.adminForm.groupsIn, document.adminForm.groups, '0');
}


function moveItems1 (from, to, bitstatus)
{
   var selindex;
   
   //document.getElementById('changesWereMade').innerHTML='Changes were made to group attachments (don\'t forget to apply changes) *';
   
   while ((selindex=from.selectedIndex) != -1)
   {
       var i;
       var item = new Option(from.options[selindex].text,
                             from.options[selindex].value,
                             false, true);

       from.options[selindex] = null;
       //to.options[to.options.length] = item;

       // find spot to put new item
       for (i=0; i<to.options.length && to.options[i].text < item.text; i++) { }
       var newindex = i;

       // move everything else down
       for (i=to.options.length; i>newindex; i--) {
                to.options[i] = new Option(to.options[i-1].text,
                                      to.options[i-1].value,
                                      false,
                                      to.options[i-1].selected);
       }
       to.options[newindex] = item;

       // turn the groupmask bit on or off
       var groupId = item.value;
       var element = document.forms['adminForm'].elements['tableStat'+groupId];
       element.value = bitstatus;
   }
}

function moveIn1 ()
{
   var form = document.adminForm;
   var inlist = form.groupsIn1;
   var outlist = form.groups1;
   moveItems1(document.adminForm.groups1, document.adminForm.groupsIn1, '1');
}
function moveOut1 ()
{
   moveItems1(document.adminForm.groupsIn1, document.adminForm.groups1, '0');
}

function saveorder( n ) 
{
	checkAll_button( n );
}

//needed by saveorder function
function checkAll_button( n ) 
{
	for ( var j = 1; j <= n; j++ ) 
	{
		box = eval( "document.adminForm.id" + j );
		if ( box ) 
		{
			if ( box.checked == false ) 
			{
				box.checked = true;
			}
		} 
		else 
		{
			alert("You cannot change the order of items, as an item in the list is `Checked Out`");
			return;
		}
	}
	submitform('saveorder');
}

function listOrderTask( id, task ) 
{
  var f = document.adminForm;
  cb = eval( 'f.' + id );
  if (cb) 
  {
    for (i = 0; true; i++) 
    {
      cbx = eval('f.id'+i);
      if (!cbx) break;
      cbx.checked = false;
    } 
    cb.checked = true;
    f.boxchecked.value = 1;
    submitbutton(task);
  }
  return false;
}

function listTask( id, task ) 
{
  var f = document.adminForm;
  cb = eval( 'f.' + id );
  if (cb) 
  {
    for (i = 0; true; i++) 
    {
      cbx = eval('f.id'+i);
      if (!cbx) break;
      cbx.checked = false;
    } 
    cb.checked = true;
    f.boxchecked.value = 1;
    submitbutton(task);
  }
  return false;
}

function parseFormErrors( data )
{
  var errors = new Array();
  var item;
  $("span[@id*=error_]").html("");	
  
   try {errors = eval( data );} catch(err){}
   for (i = 0; i < (errors.length); i++ )
   {
  	  item = errors[i];
  	  if ( document.getElementById('error_' +item['name']) != null )
    	  document.getElementById('error_' +item['name']).innerHTML = '<br/>'+item['value'];
  	  else 	 
  	   document.getElementById('TD_' +item['name']+ '_element').innerHTML += '<span id="error_' +item['name']+ '" class="error"><br/>' + item['value']+ '</span>';
   }
  
}


function putAddress( divName, address, city, state, zip, country )
{
 if ( divName == 'useraddress')
 {
   document.getElementById("country").selectedIndex = country;
   document.getElementById("address").value = address;
   document.getElementById("city").value = city;
   document.getElementById("state").value = state;
   document.getElementById("zip").value = zip;
 }
 else
 {
   document.getElementById("address1").value = address;
   document.getElementById("city1").value = city;
   document.getElementById("state1").value = state;
   document.getElementById("zip1").value = zip;
 }
 document.getElementById(divName).style.display = 'none';
}


function putAddress1( divName, address, city, state, zip, country )
{
  document.getElementById("countryId").selectedIndex = country;
  document.getElementById("address").value = address;
  document.getElementById("city").value = city;
  document.getElementById("stateId").value = state;
  document.getElementById("zip").value = zip;
  document.getElementById(divName).style.display = 'none';
}


function viewDiv( divName ) 
{
	document.getElementById(divName).style.display = 'block';
	if ( divName == 'useraddress' )
	  document.getElementById('useraddress1').style.display = 'none';
	else  
	  document.getElementById('useraddress').style.display = 'none';
}

function viewDiv1( divName ) 
{
	document.getElementById(divName).style.display = 'block';
}



function hideDiv( divName ) {document.getElementById(divName).style.display = 'none';}


function parseFormErrors1( data, divId )
{
  var errors = new Array();
  var item, errMsg;
  errMsg = '';
  $("span[@id*=error_]").html("");	
  
   try {errors = eval( data );} catch(err){}
   for (i = 0; i < (errors.length); i++ )
   {
  	  item = errors[i];
  	  caption = $('#TD_'+item['name']+'_caption').html();
  	  caption = caption.replace('&nbsp;*', '');
  	  errMsg += caption+' '+item['value']+'<br/>';
  	  document.getElementById('TD_'+item['name']+'_caption').className = 'errorRed';
   }
   document.getElementById(divId).innerHTML = 'ERROR IN THE FOLLOW FIELD:<br/>' +errMsg;
   $('#'+divId).show();
   
}

function createCustomUpload()
{
  var W3CDOM = (document.createElement && document.getElementsByTagName);
  
  if (!W3CDOM) return;
  var fakeFileUpload = document.getElementById('fakefile');
  var x = document.getElementsByTagName('input');
  for (var i=0;i<x.length;i++)
  {
	if (x[i].type != 'file') continue;
	if (x[i].parentNode.className != 'fileinputs' && x[i].parentNode.className != 'fileinputs1' ) continue;
	x[i].className = 'file hidden';
	var clone = fakeFileUpload.cloneNode(true);
	x[i].parentNode.appendChild(clone);
	x[i].relatedElement = clone.getElementsByTagName('input')[0];
	x[i].relatedElement.id = 'new_element';
	document.getElementById('new_element').style.width = '100px';
	
	x[i].onchange = x[i].onkeyup = x[i].onmouseout = function () {
		this.relatedElement.value = this.value;
		document.getElementById("fileInputCustom").value = this.value;
	}
  }
}


function addToCart( id )
{
  $.post(urlSite+"components/com_cart/cart.jquery.php",{id: id, task: "addToCart",request:1}, 
     function(data)
     {
     }
  );
}

function changeOrder( orderBy, desc )
{
	$('#orderBy').val( orderBy );
	$('#desc').val( desc );
	document.adminForm.submit();
}


var arrDecimal = new Array();
arrDecimal[0] = new Array( 0.03125, '1/32' );
arrDecimal[1] = new Array( 0.0625, '1/16' );
arrDecimal[2] = new Array( 0.09375, '3/32' );
arrDecimal[3] = new Array( 0.125, '1/8' );
arrDecimal[4] = new Array( 0.15625, '5/32' );
arrDecimal[5] = new Array( 0.1875, '3/16' );
arrDecimal[6] = new Array( 0.21875, '7/32' );
arrDecimal[7] = new Array( 0.25, '1/4' );
arrDecimal[8] = new Array( 0.28125, '9/32' );
arrDecimal[9] = new Array( 0.3125, '5/16' );
arrDecimal[10] = new Array( 0.34375, '11/32' );
arrDecimal[11] = new Array( 0.375, '3/8' );
arrDecimal[12] = new Array( 0.40625, '13/32' );
arrDecimal[13] = new Array( 0.4375, '7/16' );
arrDecimal[14] = new Array( 0.46875, '15/32' );
arrDecimal[15] = new Array( 0.5, '1/2' );
arrDecimal[16] = new Array( 0.53125, '17/32' );
arrDecimal[17] = new Array( 0.5625, '9/16' );
arrDecimal[18] = new Array( 0.59375, '19/32' );
arrDecimal[19] = new Array( 0.625, '5/8' );
arrDecimal[20] = new Array( 0.65625, '21/32' );
arrDecimal[21] = new Array( 0.6875, '11/16' );
arrDecimal[22] = new Array( 0.71875, '23/32' );
arrDecimal[23] = new Array( 0.75, '3/4' );
arrDecimal[24] = new Array( 0.78125, '25/32' );
arrDecimal[25] = new Array( 0.8125, '13/16' );
arrDecimal[26] = new Array( 0.84375, '27/32' );
arrDecimal[27] = new Array( 0.875, '7/8' );
arrDecimal[28] = new Array( 0.90625, '29/32' );
arrDecimal[29] = new Array( 0.9375, '15/16' );
arrDecimal[30] = new Array( 0.96875, '31/32' );
arrDecimal[31] = new Array( 1, '1' );

function recalculateParam( value, type, nameMetric, nameImperial, epsMetric, epsImperial  )
{
	var tmpNumber;
	if ( type == 'metric' )
	{
		value = value.replace( ',', '.' );
	  if (confirm( captionMetricToImperial ))
	  {
	  	var Number = number_format( value*epsMetric, 2, '.', '');
	  	var prevValue = '';
	  	var ceilNumber = substr(Number, 0, strpos(Number,'.'));
	  	ceilNumber = ( ceilNumber ? ceilNumber : parseInt(Number) );
	  	var decimalNumber = (Number - ceilNumber).toFixed(6); 
	  	for (x in arrDecimal)
      {
      	if ( arrDecimal[x][0] <= decimalNumber )
      	  prevValue = arrDecimal[x][1];
      	if ( arrDecimal[x][0] > decimalNumber )  
		    {
		      tmpNumber = prevValue;
			    break;
		    }
      }
	  	$('#'+nameMetric).val( value );
	  	$('#'+nameImperial).val( ( ceilNumber > 0 ? ceilNumber+' ' : '')+tmpNumber );
	  }
	}else
	{
		if (confirm( captionMetricToImperial ))
		{
			//alert(parseInt(value));
			//check ceil number in string
			var ceilNumber = 0;
			var decimalNumber1 = 0;
			var decimalNumber2 = 1;
			if ( strpos(value,' ') )
			{
				ceilNumber = substr(value, 0, strpos(value,' '));
				value1 = value.replace(ceilNumber+' ','');
				value = value1;
			}
			else if ( strpos(value,"/") )
			{
				ceilNumber = 0;
			}
			else
			 ceilNumber = parseInt(value);
			
			decimalNumber1 = substr(value, 0, strpos(value,'/'));
			decimalNumber2 = value.replace(decimalNumber1+'/','');
			
      Number = (parseInt(ceilNumber) + parseFloat(decimalNumber1/decimalNumber2))*epsImperial;
      
	  	$('#'+nameMetric).val( number_format(Number, 2, '.', '') );
		}
	}
}



function recalculateDives( value, type, nameMetric, nameImperial, epsMetric, epsImperial )
{
	if ( type == 'metric' )
	{
		var tmpNumber;
		value = value.replace( ',', '.' );
	  if (confirm( captionMetricToImperial ))
	  {
	  	var Number = value*epsMetric;
	  	var prevValue = '';
	  	var ceilNumber = substr(Number, 0, strpos(Number,'.'));
	  	var decimalNumber = (Number - ceilNumber).toFixed(4);
	  	incNumber = ceil(decimalNumber*12);
	  	if ( incNumber == 12 ) 
	  	{
	  		ceilNumber++;
	  		incNumber = '';
	  	}
	  	$('#'+nameMetric).val( value );
	  	$('#'+nameImperial).val((ceilNumber > 0 ? ceilNumber+"' " : '')+( incNumber ? +incNumber+"''" : '') );
	  }
	}
  else
  {
	  if (confirm( captionMetricToImperial ))
	  {
			var ceilNumber = 0;
			var decimalNumber1 = 0;
			
			if ( strpos(value,"' ") || strpos(value,"''") )
			{
				ceilNumber = substr(value, 0, strpos(value,"' "));
				value1 = value.replace(ceilNumber+"' ",'');
				decimalNumber1 = parseInt(value1);
				
			}
			else
			  ceilNumber = parseInt(value);
      Number = parseInt(ceilNumber)*epsImperial + parseFloat(decimalNumber1)*0.0254;
    
  	  $('#'+nameMetric).val( number_format(Number, 2, '.', '') );
	  }
  	
  }
}

function recalculateDiametr( value, type, nameMetric, nameImperial, epsMetric, epsImperial )
{
	if ( type == 'metric' )
	{
		var tmpNumber;
		value = value.replace( ',', '.' );
	  if (confirm( captionMetricToImperial ))
	  {
	  	var Number = (value*epsMetric).toFixed(2);
	  	var prevValue = '';
	  	var ceilNumber = substr(Number, 0, strpos(Number,'.'));
	  	var decimalNumber = (Number - ceilNumber).toFixed(4);
	  	$('#'+nameMetric).val( value );
	  	$('#'+nameImperial).val(Number+( decimalNumber>0 ? "''" : '') );
	  }
	}
  else
  {
	  if (confirm( captionMetricToImperial ))
	  {
	  	value = value.replace( "''", '' );
  	  $('#'+nameMetric).val( number_format(value*epsImperial, 1, '.', '') );
	  }
  	
  }
}



function recalculateParamCommon( value, type, nameMetric, nameImperial, epsMetric, epsImperial  )
{
	value = value.replace( ',', '.' );
	if ( type == 'metric' )
	{
		var tmpNumber;
	  if (confirm( captionMetricToImperial ))
	  {
	  	$('#'+nameImperial).val( number_format(value*epsMetric, 2, '.', '') );
	  }
	}	
	else
	{
	  if (confirm( captionMetricToImperial ))
	  {
	  	$('#'+nameMetric).val( number_format(value*epsImperial, 2, '.', '') );
	  }		
	}
}

function getAllBrands()
{
	$.post(urlSite+"administrator/modules/mod_jquery.php",{ task:'getBrands', section:section },
	  function(data)
	  {
	  	$('#makeId').html(data);
	  }
	);
}


function getSeries( makeId, fieldName )
{
	$.post(urlSite+"administrator/modules/mod_jquery.php",{ task:'getSeries', makeId:makeId, section:section },
	  function(data)
	  {
	  	$('#'+fieldName).html(data);
	  }
	);
}

function initSearchInput(id) {
  var input = $('#'+id);
  var placeholder = input.attr('placeholder');
  
  var show_ph = function() {
    if (input.attr('value') == '') {
      input.addClass('grey');
      input.attr('value', placeholder);
    }
  }
  
  var hide_ph = function() {
    if (input.attr('value') == placeholder) {
      input.removeClass('grey');
      input.attr('value', '');
    }
  }
  
  input.focus(hide_ph);
  input.blur(show_ph);
  
  show_ph();
}

