var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var bustcachevar = 1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var clicked = false;


   
   document.getElementsByClassName = function(cl) {
var retnode = [];
var myclass = new RegExp('\\b'+cl+'\\b');
var elem = this.getElementsByTagName('*');
for (var i = 0; i < elem.length; i++) {
var classes = elem[i].className;
if (myclass.test(classes)) retnode.push(elem[i]);
}
return retnode;
}; 

/***********************************************
* Dynamic Ajax Content- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/
function ajaxpage(url, containerid) {
   var page_request = false;
   if (window.XMLHttpRequest) {
      // if Mozilla, Safari etc
      page_request = new XMLHttpRequest();
      }
   else if (window.ActiveXObject) {
      // if IE
      try {
         page_request = new ActiveXObject("Msxml2.XMLHTTP")}
      catch (e) {
         try {
            page_request = new ActiveXObject("Microsoft.XMLHTTP")}
         catch (e) {
            }
         }
      }
   else return false;
   page_request.onreadystatechange = function() {
      loadpage(page_request, containerid)}
   if (bustcachevar) {
      //if bust caching of external page
      bustcacheparameter = (url.indexOf("?") !=- 1) ? "&" + new Date().getTime() : "?" + new Date().getTime();
      }
   page_request.open('GET', url + bustcacheparameter, true);
   page_request.send(null);
   }
   
function loadpage(page_request, containerid) {
   if (page_request.readyState == 4 && (page_request.status == 200 || window.location.href.indexOf("http") ==- 1)) {
      document.getElementById(containerid).innerHTML = page_request.responseText;
     // document.getElementById(containerid).style.display = 'block';
      }
   }
   
function renderNextOpt(aid, vid, oid, product, nextOpt) {
   var url = 'getAttrInfo.php?pID=' + product + '&aID=' + aid + '&vID=' + vid + '&oID=' + oid + '&nextOpt=' + nextOpt;
  // alert(url);

   if(nextOpt > 0) {
      	document.getElementById(product + "_add").disabled = true;
  	  	document.getElementById(product + "_qty").disabled = true;
      	ajaxpage(url, product + '_option_' + nextOpt);
      }else{
        document.getElementById(product + "_add").disabled = false;
   		document.getElementById(product + "_qty").disabled = false;
      }
      calculatePrice(product,0);
   }

function renderNextOptMulti(oid,product,nextOpt,count,free){

var url = 'getAttrInfo.php?pID=' + product + '&oID=' + oid + '&nextOpt=' + nextOpt;
var poststring='';
var form=document.forms.cart_quantity;
	for(var i=0; i<form.elements.length;i++){
		if(form.elements[i].name.indexOf('id['+oid+']')>-1){

	
		
				if(form.elements[i].checked){
				poststring += form.elements[i].name + '=' + encodeURI(form.elements[i].value) + '&';

			}
		}
	}
url=url+'&'+poststring;

   if(nextOpt > 0||free=='0') {
      	document.getElementById(product + "_add").style.display = 'none';
  	  	document.getElementById(product + "_qty").style.display = 'none';

  	  	
      	ajaxpage(url, product + '_option_' + nextOpt);
      }else {
        document.getElementById(product + "_add").style.display = 'block';
   		document.getElementById(product + "_qty").style.display = 'block';

      }
      calculatePrice(product,count);

}


function in_array(needle, haystack, argStrict) {

 
    var key = '', strict = !!argStrict;
 
    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;
            }
        }
    } else {
        for (key in haystack) {
            if (haystack[key] == needle) {
                return true;
            }
        }
    }
 
    return false;
}

function calculatePrice(product,count){
if(count==undefined){count=1;}
	var base=document.getElementById('plainPrice_'+product).value;
	var currency=document.getElementById('currencySign_'+product).value;
	var form=document.getElementById('cart_quantity_'+product);
	var str=base;
	var cnt=0;
	var used=new Array();
	for(var i=0; i<form.elements.length;i++){
	//alert(form.elements[i].name+"\r\n"+form.elements[i].type);
		if(form.elements[i].name.indexOf('id[')>-1){
		var sel=0;

			if(form.elements[i].type=='select-one'){
					sel=form.elements[i].options[form.elements[i].selectedIndex].value;
					str+=document.getElementById('price['+sel+']').value;
				}else if(form.elements[i].type=='select-multiple'){
				for(var y=0; y<form.elements[i].options.length; y++){
				if(form.elements[i].options[y].selected){
				sel=form.elements[i].options[y].value;
					str+=document.getElementById('price['+sel+']').value;
				}
				}
				}
				else if(form.elements[i].type=='checkbox'||form.elements[i].type=='radio'){
				
				if(form.elements[i].checked && !in_array(form.elements[i].parentNode,used)){
				used.push(form.elements[i].parentNode);
				sel=form.elements[i].value;
					str+=document.getElementById('price['+sel+']').value;
					cnt++;
				}
				
				}else{
					sel=form.elements[i].value;
					str+=document.getElementById('price['+sel+']').value;
				}

		}
	}
	var result=eval(str);
	//alert(result);
	document.getElementById('showPrice_'+product).innerHTML=result.toFixed(2).replace('.',',')+' '+currency;
	
}


function findMatch(val, text, target) {
   targetElId = document.getElementById(target + '_id');
   targetElText = document.getElementById(target + '_text');
   targetElId.value = val;
   targetElText.value = text;
   if (targetElText.type == 'text') {
      targetElText.style.nothing = Math.floor(Math.random() * chars.length);
      targetElText.size = text.length;
      }
   }

function change(target, mode,next) {
   var splited = target.split('_');
   var product = splited[0];
   var option=splited[2]
   targetEl = document.getElementById(target);
   var options = targetEl.childNodes;
   var control = '';
   for(var i = 0; i < options.length; i++) {
      if(options[i].className == 'selectedItem') {
         var selected = i;
         }
      options[i].className = 'unselectedItem';
      }
   if(mode == '+') {
      if(selected < options.length - 1)selected++;
      }
   else {
      if(selected > 0)selected--;
      }
   options[selected].className = 'selectedItem';

   findMatch(options[selected].id, options[selected].innerHTML, target.replace('list', 'opt'));
     clicked = self.setTimeout("change('" + target + "','" + mode + "')", 200);
   renderNextOpt(options[selected].title, options[selected].id, option, product, next);

 
   }
   
function stopChange() {
   self.clearTimeout(clicked);
   }
   
   function countSelected(obj){
   var counter=0;
   for(var i=0; i<obj.childNodes.length; i++){
   if(obj.childNodes[i].className=='selectedItem'){
   counter++;
   }
   }
   return counter;
   }
   
   function selector(obj,oid,product,nextOpt,count,max,error_max){
  
   var free=0;
if(typeof(obj)=='object'){
  if(obj.className=='selectItem'){
if(max>countSelected(obj.parentNode)&&max!=0){ 
   select(obj);}else{alert(error_max)}
   }else{
   unselect(obj);
   }
 free=countSelected(obj.parentNode);
}

 	var buttons=document.getElementsByClassName('nextBTN');
 
if(free==0){
  	 
  	  	  		  	  	for (var y=0;y<buttons.length;y++){
  	  	  		  	  	
  	  	buttons[y].disabled=true;
  	  	}
}else{
  	  	  		  	  	for (var y=0;y<buttons.length;y++){
  	  	buttons[y].disabled=false;
  	  	}
 
}



   renderNextOptMulti(oid,product,nextOpt,count, free);


   }
   
   function select(obj){
   obj.className="selectedItem";
      
   for(var i=0;i<obj.childNodes.length; i++){
   if(obj.childNodes[i].type=='checkbox'){
   obj.childNodes[i].checked=true;
   }
   }

   }
   
   function unselect(obj){
   
   obj.className="selectItem";
      
   for(var i=0;i<obj.childNodes.length; i++){
   if(obj.childNodes[i].type=='checkbox'){
   obj.childNodes[i].checked=false;
   }
   }
   
   
   }
   
   

   function switchTab(opt,next,prod,dir){
   if(dir=='fwd'){
   document.getElementById(prod+'_option_'+opt+'_head').className='option';
   document.getElementById(prod+'_option_'+next+'_head').className='option_active';
    document.getElementById(prod+'_option_'+opt).style.display='none';
   document.getElementById(prod+'_option_'+next).style.display='block';
   }else{
      document.getElementById(prod+'_option_'+opt+'_head').className='option_active';
   document.getElementById(prod+'_option_'+next+'_head').className='option';
    document.getElementById(prod+'_option_'+opt).style.display='block';
   document.getElementById(prod+'_option_'+next).style.display='none';
   
   
   }
   
   }

