
function getRanges(selectedCardType)
{  
 
  try
  {    // Firefox, Opera 8.0+, Safari    
  	xmlHttp=new XMLHttpRequest();    
  }
  catch (e)
  {    // Internet Explorer    
  
	  try
	  {      
		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
	  }
	  catch (e) 
	  {      
		try
		{        
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
		}
		catch (e)
		{        
			alert("Your browser does not support AJAX!");        
			return false;        
		}      
	  }    
   }  
  
  xmlHttp.onreadystatechange=stateChanged;
  xmlHttp.open("GET","ajaxGetRanges.asp?cardTypeId=" + selectedCardType + "&time=" + new Date().getTime(),true);
  xmlHttp.send(null);

}
function stateChanged() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		updateRanges(xmlHttp.responseText);
	}
} 

function updateRanges(dbListString){

	var parentList=document.MyForm.rangeId;
	parentList.options.length=0;
	
	var parentDBList=new Array();
	parentDBList = dbListString.split("*");

	
		for (i=0; i<parentDBList.length; i++)
			parentList.options[parentList.options.length]=new Option(parentDBList[i].split("|")[1], parentDBList[i].split("|")[0])
			
			
}




function getTags(selectedCardType)
{  
 
  try
  {    // Firefox, Opera 8.0+, Safari    
  	xmlHttp2=new XMLHttpRequest();    
  }
  catch (e)
  {    // Internet Explorer    
  
	  try
	  {      
		xmlHttp2=new ActiveXObject("Msxml2.XMLHTTP");      
	  }
	  catch (e) 
	  {      
		try
		{        
			xmlHttp2=new ActiveXObject("Microsoft.XMLHTTP");        
		}
		catch (e)
		{        
			alert("Your browser does not support AJAX!");        
			return false;        
		}      
	  }    
   }  
  
  xmlHttp2.onreadystatechange=stateChangedTags;
  xmlHttp2.open("GET","ajaxGetTags.asp?cardTypeId=" + selectedCardType + "&time=" + new Date().getTime(),true);
  xmlHttp2.send(null);

}
function stateChangedTags() 
{ 
	if (xmlHttp2.readyState==4)
	{ 
		updateTags(xmlHttp2.responseText);
	}
} 

function updateTags(dbListString){

	var myDiv=document.getElementById('tags');
	var myDiv2=document.getElementById('numberOfTags');
	myDiv.innerHTML='';

	var anotherArray = new Array();
	anotherArray = dbListString.split("?");
	var numberOfTags =  anotherArray[0];
	if(numberOfTags==null || numberOfTags==""){
		numberOfTags=0;
	}
	else{
		numberOfTags = numberOfTags;
	}
	myDiv2.value=numberOfTags;
	var parentDBList=new Array();
	
	parentDBList = anotherArray[1].split("*");

		if(parentDBList[0] != ""){
			
			for (i=0; i<parentDBList.length; i++){
				myDiv.appendChild(addCheckBox('tags' + i, parentDBList[i].split("|")[0] ));
				myDiv.innerHTML += parentDBList[i].split("|")[1] + "<br>";
			}
		}
}
function isNumeric(sText)
{

   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
}


function updateCart(cardId,  unitPrice)
{  
 var quantity = document.getElementById('quantity'+cardId).value;
 
 var rangeDesign = document.getElementById('rangeDesign'+cardId);
 
 var rangeValue;


if(rangeDesign != null && (!isNumeric(rangeDesign.value) || rangeDesign.value == 0)){
		alert("You must Select a Range Design");
		return;
}
else if(rangeDesign != null){
	rangeValue = rangeDesign.value;
}
else{
	rangeValue = -1;
}

if(!isNumeric(quantity) || quantity <= 0){
		alert("you must enter a quantity greater than 0");
		return;
}
  try
  {    // Firefox, Opera 8.0+, Safari    
  	xmlHttp=new XMLHttpRequest();    
  }
  catch (e)
  {    // Internet Explorer    
  
	  try
	  {      
		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
	  }
	  catch (e) 
	  {      
		try
		{        
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
		}
		catch (e)
		{        
			alert("Your browser does not support AJAX!");        
			return false;        
		}      
	  }    
   }  
  
  xmlHttp.onreadystatechange=stateChangedUpdateCart;
  
  xmlHttp.open("GET","ajaxShoppingCart.asp?cardId=" + cardId + "&quantity=" + quantity + "&unitPrice=" + unitPrice + "&range=" + rangeValue + "&time=" + new Date().getTime(),true);
  xmlHttp.send(null);

}
function stateChangedUpdateCart() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		updateCartDivs(xmlHttp.responseText);
	}
} 

function updateCartDivs(dbListString){

	var totalItems=document.getElementById('cartTotalItems');
	var totalCost=document.getElementById('cartTotalCost');
	var basketUpdateMessage=document.getElementById('successfulBasketUpdate');

	var cartDetails=new Array();
	cartDetails = dbListString.split("|");

	totalItems.innerHTML = cartDetails[0];
	totalCost.innerHTML = cartDetails[1];
	basketUpdateMessage.innerHTML = "Item(s) successfully added to basket"
}




var loadedTemplates = new Array();
function updateTemplates(cardId)
{ 

	if(existsInArray(loadedTemplates, cardId)){
		return;
	}
	loadedTemplates[loadedTemplates.length] = cardId;
	
	var divName = "templateText" + cardId;
 	//document.getElementById(divName).value = "Select a template";
   
  try
  {    // Firefox, Opera 8.0+, Safari    
  	xmlHttp=new XMLHttpRequest();    
  }
  catch (e)
  {    // Internet Explorer    
  
	  try
	  {      
		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
	  }
	  catch (e) 
	  {      
		try
		{        
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
		}
		catch (e)
		{        
			alert("Your browser does not support AJAX!");        
			return false;        
		}      
	  }    
   }  
  
  xmlHttp.onreadystatechange=stateChangedUpdateTemplates;

  xmlHttp.open("GET","ajaxGetTemplates.asp?cardId=" + cardId + "&time=" + new Date().getTime(),true);
  xmlHttp.send(null);

}
function stateChangedUpdateTemplates() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		updateTemplateSelect(xmlHttp.responseText);
	}
} 

function updateTemplateSelect(response){
	
	var responseArray = new Array();
	responseArray = response.split("?");
	var parentDBList=new Array();
	
	var divName = "templates" + responseArray[0];
	var parentList=document.getElementById(divName);

	if(parentList != null){
		parentList.options.length=0;
	}
	
	parentDBList = responseArray[1].split("*");

		if(parentDBList[0] != ""){
			for (i=0; i<parentDBList.length; i++){
				parentList.options[parentList.options.length]=new Option(parentDBList[i].split("|")[1], parentDBList[i].split("|")[0])
			}
		}
}



function getTemplate(cardId)
{  
	var divName = "templates" + cardId;
 	var templateId=document.getElementById(divName).value;

  try
  {    // Firefox, Opera 8.0+, Safari    
  	xmlHttp=new XMLHttpRequest();    
  }
  catch (e)
  {    // Internet Explorer    
  
	  try
	  {      
		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
	  }
	  catch (e) 
	  {      
		try
		{        
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
		}
		catch (e)
		{        
			alert("Your browser does not support AJAX!");        
			return false;        
		}      
	  }    
   }  
  
  xmlHttp.onreadystatechange=stateChangedUpdateTemplate;
  
  xmlHttp.open("GET","ajaxGetTemplate.asp?templateId=" + templateId + "&cardId=" + cardId + "&time=" + new Date().getTime(),true);
  xmlHttp.send(null);

}
function stateChangedUpdateTemplate() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		updateTemplateText(xmlHttp.responseText);
	}
} 

function updateTemplateText(dbListString){

	var responseArray = new Array();
	responseArray = dbListString.split("?");
	
	var divName = "templateText" + responseArray[0];
 	document.getElementById(divName).value = responseArray[1];
}




function addCheckBox(name,value){
  var chk = document.createElement('input')
  chk.type = 'checkbox';
  chk.value = value;
  chk.name=name
 
  return chk;
}

function existsInArray(ArrayObj, SearchFor){
  var Found = false;

  for (var i = 0; i < ArrayObj.length; i++){

    if (ArrayObj[i] == SearchFor){
      return true;
      var Found = true;
      break;
    }
    else if ((i == (ArrayObj.length - 1)) && (!Found)){
      if (ArrayObj[i] != SearchFor){
        return false;
      }
    }
  }
}


function calculateTotal(cardId, unitPrice){
	var newPrice

	newPrice = unitPrice * document.getElementById('quantity' + cardId).value;
	document.getElementById('total' + cardId).innerHTML = newPrice.toFixed(2);
}




function showHide(shID) {
	if (document.getElementById(shID)) {
		if (document.getElementById(shID+'-show').style.display != 'none') {
			document.getElementById(shID+'-show').style.display = 'none';
		    document.getElementById(shID).style.display = 'inline';
		}
		else {
			document.getElementById(shID+'-show').style.display = 'inline';
			document.getElementById(shID).style.display = 'none';
		}
	}
}

function changeFontImage(id){
	var selectBox = document.getElementById('font' + id);
	if(selectBox != null){
		var selectedFont = selectBox.value;
		selectedFont = selectedFont.replace(/ /g, "-");
		document['exampleText'+id].src="images/" + selectedFont + ".gif";
	}
}

function checkoutPaypal(){
	//need to update instructions and delivery and discount
 	var instructions=document.paypalCheckout.instructions.value;
	var shipping=document.paypalCheckout.handling_cart.value;
	var discount=document.paypalCheckout.discount.value;

  try
  {    // Firefox, Opera 8.0+, Safari    
  	xmlHttp=new XMLHttpRequest();    
  }
  catch (e)
  {    // Internet Explorer    
  
	  try
	  {      
		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
	  }
	  catch (e) 
	  {      
		try
		{        
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
		}
		catch (e)
		{        
			alert("Your browser does not support AJAX!");        
			return false;        
		}      
	  }    
   }  
  
  xmlHttp.onreadystatechange=stateChangedPaypalCheckout;
  
  xmlHttp.open("GET","ajaxPaypalCheckout.asp?instructions=" + escape(instructions) + "&shipping=" + shipping + "&discount=" + discount + "&time=" + new Date().getTime(),true);
  xmlHttp.send(null);
	
}

function stateChangedPaypalCheckout() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		document.paypalCheckout.submit();
	}
} 

function changeOrderStatus(shoppingCartId){
	var orderStatus = document.getElementById('orderStatus' + shoppingCartId).value

  try
  {    // Firefox, Opera 8.0+, Safari    
  	xmlHttp=new XMLHttpRequest();    
  }
  catch (e)
  {    // Internet Explorer    
  
	  try
	  {      
		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
	  }
	  catch (e) 
	  {      
		try
		{        
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
		}
		catch (e)
		{        
			alert("Your browser does not support AJAX!");        
			return false;        
		}      
	  }    
   }  
  
  xmlHttp.onreadystatechange=stateChangedUpdateOrderStatus;
  
  xmlHttp.open("GET","ajaxUpdateOrderStatus.asp?orderStatus=" + escape(orderStatus) + "&cartId=" + shoppingCartId + "&time=" + new Date().getTime(),true);
  xmlHttp.send(null);
	
}

function stateChangedUpdateOrderStatus() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		
	}
} 

function assertNumeric(object){
		if(object != null && !isNumeric(object.value)){
			alert("You must enter an additional number of pages equal to or greater than 0");
			return false;
		}
		return true;
}
