//jQuery calls

//$.get(url, '', function(){}, html)
//document.getElementById(id).innerHTML = xmlhttp.responseText;

$(document).ready(function()
{

	$('.addField').click(function(e)
	{
		addElement('text', 'thumbs_w[]', '', 'thumbs');
		$('#thumbs').append('*');
		addElement('text', 'thumbs_h[]', '', 'thumbs');
		$('#thumbs').append('<br /><br />');
	});

	$('.enterkey').keypress(function(e)
	{
		if(e.which == 13)
		{
			if($('.advexpad_jq'))
			{
				restoreAll();
			}
			this.form.submit();
		}
	});

	$('#cancel').click(function(e){
     //loadPageToDiv2(, 'page_'); //requires rewriting with $'s ajax
     $.get('ext/cart_handler.php', {cancelcompare: 1}, function(data){$('#page_').html(data)}, 'html');
     e.preventDefault();
	});

	$('.compare_checkbox').change(function(e){
     //loadPageToDiv('ext/cart_handler.php?modcompare=' + this.value);
     $.get('ext/cart_handler.php', {modcompare: this.value});
	});

	$('.checklist').click(function(e)
	{
			var checked = $(this).data('checked');
	    $('.checkid').prop({'checked': checked});
	    e.preventDefault();
	});

	$('a[href*="&del=1"], a[href*="&delcart=1"], a[href*="&dupl=1"]').click(function(e)
	{
		e.preventDefault();
		if(confirm($(this).attr('title')))
		{
			window.location = $(this).attr('href');
		}
	});

	$('#checkout').click(function(e)
	{
		if($('#cartnum').html()>0)
		{
			this.form.submit();
		}
		else
		{
			alert($(this).data('text'));
		}
	});
/*
function check_num(div_id, form_id, text)
{
	checked_num = document.getElementById(div_id).innerHTML;
	if(checked_num > 0)
	{
		document.getElementById(form_id).submit();
	}
	else
	{
		alert(text);
	}
}
*/
});

//functions with jQuery

	function addElement(type, name, value, place)
	{
		$('<input />', {"type": type,"value": value,"name": name}).appendTo($('#'+place));
	}

// **************************************************************************************************** //
//																					work area
// **************************************************************************************************** //

function confirm_ajax(text, id, element)
{
	if (confirm(text))
	{
		var price_field = 'price' + id;
		var price = document.getElementById(price_field).innerHTML;
		var oldsum = document.getElementById('cart_sum').innerHTML;
		var newsum = parseFloat(oldsum) - parseFloat(price);
		newsum = roundFloat(newsum, 2);
		document.getElementById('cart_sum').innerHTML = newsum;

		var cart_num = document.getElementById('cartnum').innerHTML;
		var new_cartnum = parseInt(cart_num)-1;
		document.getElementById('cartnum').innerHTML = new_cartnum;
		removeElement(element, 'carts');

		carts_inner = document.getElementById('cartnum').innerHTML;
		if(carts_inner == 0)
		{
			var _to = document.getElementById('carts');
			loadPageToDiv2('ext/cart_handler.php?empty_cart=1', 'carts');
		}
		loadPageToDiv('ext/cart_handler.php?del_id=' + id);
	}
}

function cart_in(id)
{
	var input = 'amount' + id;
	var element = document.getElementById(input);
	var element_value = element.value;
	var new_value = parseInt(element_value) + 1;
	element.value = new_value;
	loadPageToDiv('ext/cart_handler.php?cart_in=' + id);
	if(new_value == 1)
	{
		change_cart(1);
	}
}

function cart_out(id)
{
	var input = 'amount' + id;
	var element = document.getElementById(input);
	var element_value = element.value;
	var new_value = parseInt(element_value) - 1;
	if(new_value>=0)
	{
		loadPageToDiv('ext/cart_handler.php?cart_out=' + id);
		element.value = new_value;
	}
	if(new_value == 0)
	{
		change_cart(0);
	}
}

function cart_plus(id)
{
	var span = 'amount' + id;
	var amount = document.getElementById(span).innerHTML;
	var new_amount = parseInt(amount) + 1;
	var price_field = 'price' + id;
	var up_field = 'userp' + id;

	var up = document.getElementById(up_field).innerHTML; //ppu
	var price = document.getElementById(price_field).innerHTML; //product sum (aka amount*up)
	var oldsum = document.getElementById('cart_sum').innerHTML; //cart sum (aka all products)
	var newsum = parseFloat(oldsum) + parseFloat(up);
	var newprice = parseFloat(price) + parseFloat(up);
	newsum = roundFloat(newsum, 2);
	newprice = roundFloat(newprice, 2);
	document.getElementById(span).innerHTML = new_amount;
	document.getElementById(price_field).innerHTML = newprice;
	document.getElementById('cart_sum').innerHTML = newsum;

	loadPageToDiv('ext/cart_handler.php?cart_in=' + id);
}

function cart_minus(id, text)
{
	var span = 'amount' + id;
	var amount = document.getElementById(span).innerHTML;
	var new_amount = parseInt(amount) - 1;
	var price_field = 'price' + id;
	var up_field = 'userp' + id;

	var up = document.getElementById(up_field).innerHTML;
	var price = document.getElementById(price_field).innerHTML;
	var oldsum = document.getElementById('cart_sum').innerHTML;
	var newsum = parseFloat(oldsum) - parseFloat(up);
	var newprice = parseFloat(price)- parseFloat(up);
	newsum = roundFloat(newsum, 2);
	newprice = roundFloat(newprice, 2);

	if(new_amount == 0)
	{
		element = 'cart' + id;
		confirm_ajax(text, id, element);
	}
	else
	{
		document.getElementById(span).innerHTML = new_amount;
		document.getElementById(price_field).innerHTML = newprice;
		document.getElementById('cart_sum').innerHTML = newsum;
	}

	loadPageToDiv('ext/cart_handler.php?cart_out=' + id);
}

function change_cart(pm)
{
	var cart_num = document.getElementById('cartnum').innerHTML;
	if(pm>0)
	{
		var new_cartnum = parseInt(cart_num)+1;
	}
	else
	{
		var new_cartnum = parseInt(cart_num)-1;
	}
	document.getElementById('cartnum').innerHTML = new_cartnum;
}

function getElementByClass(theClass, dowhat, param)
{
  var allHTMLTags=document.getElementsByTagName("*");

	for (i=0; i<allHTMLTags.length; i++)
	{
		if (allHTMLTags[i].className==theClass)
		{
			switch(dowhat)
			{
				case 1:
					allHTMLTags[i].style.display='none';
				break;
				case 2:
					allHTMLTags[i].innerHTML=param;
				break;
				case 3:
					return allHTMLTags[i].innerHTML;
				break;
				case 4:
					var c_s = document.getElementById('currency_selector');
					var currency_id = c_s.value;
					var old_value = allHTMLTags[i].innerHTML;
					product_id = allHTMLTags[i].id.substr(5,1);
					default_element = 'default_currency' + product_id;
					default_id = document.getElementById(default_element).innerHTML;
					if(default_id != currency_id)
					{
						new_value = old_value*param;
						new_value = roundFloat(new_value,2);
						allHTMLTags[i].innerHTML = new_value;
					}
					else
					{
						if(allHTMLTags[i].id.substr(0,5) == 'price')
						{
							var amount;
							amount_element = 'amount' + product_id;
							amount = document.getElementById(amount_element).innerHTML;
						}
						if(amount>0)
						{
							loadPageToDiv('ext/cart_handler.php?amount=' + amount + '&asking_price=' + product_id, allHTMLTags[i].id);
						}
						else
						{
							loadPageToDiv('ext/cart_handler.php?asking_price=' + product_id, allHTMLTags[i].id);
						}
					}
				break;
				case 5:
					var nfc = 0;
					var c_s = document.getElementById('currency_selector');
					var currency_id = c_s.value;
					currency = currencies[currency_id]
					var searched_currency = currencies.slice(0);
					for(x = 0; x<allHTMLTags[i].options.length; x++)
					{
						array_id = in_array(allHTMLTags[i].options[x].text, currencies);
						if(array_id !== false)
						{
							delete searched_currency[array_id];
						}
						if(allHTMLTags[i].options[x].text == currency)
						{
							element_to_change = allHTMLTags[i].options[x];
							if(x == allHTMLTags[i].options.selectedIndex)
							{
								product_id = allHTMLTags[i].id.substr(5,1);
								nfc = 1;
							}

						}
					}
					var out = '';
					for(y=0; y<searched_currency.length; y++)
					{
						if(searched_currency[y] !== undefined)
						{
							out = out + searched_currency[y];
						}
					}
					element_to_change.text = out;
					element_to_change.value = in_array(out, currencies);
					if(nfc == 1 && product_id>0)
					{
						alt_element = 'alt_currency' + product_id;
						old_alt_currency = document.getElementById(alt_element).innerHTML;

						default_element = 'default_currency' + product_id;
						default_id = document.getElementById(default_element).innerHTML;

						alt_price_element = 'alt_price' + product_id;
						alt_price = document.getElementById(alt_price_element).innerHTML;

						if(out == currencies[default_id])
						{
							loadPageToDiv('ext/cart_handler.php?asking_price=' + product_id, alt_price_element)
						}
						else
						{
							//alert('ext/vc.php?p1=' + old_alt_currency + '&p2=' + out + '&am=' + alt_price);
							loadPageToDiv('ext/vc.php?round=2&p1=' + old_alt_currency + '&p2=' + out + '&am=' + alt_price, alt_price_element);
						}
						document.getElementById(alt_element).innerHTML = out;
					}
				break;
				case 6:
					//alert(allHTMLTags[i].style);
					loadPageToDiv3('ext/cart_handler.php?is_blocked=' + param + '&' + theClass +'=' + allHTMLTags[i].value, allHTMLTags[i]);
				break;
				case 7:
					allHTMLTags[i].disabled = false;
				break;
			}
		}
	}
}

function loadPageToDiv3(url, id)
{
	if ("XMLHttpRequest" in window)
	{
		var xmlhttp = new XMLHttpRequest();
	}
	if ("ActiveXObject" in window)
	{
		var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4)
		{
			id.disabled = xmlhttp.responseText;
			if(xmlhttp.responseText)
			{
				id.checked = false;
			}
		}
	}
	xmlhttp.open('GET', url, true);
	xmlhttp.send(null);
}

function removeElement(element, parent) {
	var parent_div = document.getElementById(parent);
	var element_div = document.getElementById(element);
	return parent_div.removeChild(element_div);
}

function check_num(div_id, form_id, text)
{
	checked_num = document.getElementById(div_id).innerHTML;
	if(checked_num > 0)
	{
		document.getElementById(form_id).submit();
	}
	else
	{
		alert(text);
	}
}

//$.get(url, '', function(){}, html)

function loadPageToDiv2(url, id, todo)
{
	if ("XMLHttpRequest" in window)
	{
		var xmlhttp = new XMLHttpRequest();
	}
	if ("ActiveXObject" in window)
	{
		var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4)
		{
			if(id !== undefined)
			{
				//alert(xmlhttp.responseText);
				document.getElementById(id).innerHTML = xmlhttp.responseText;
				switch(todo)
				{
					case 1:

						var cart_sum;
						var total;

						getElementByClass("price_class", 4, xmlhttp.responseText);
						if (document.getElementById('cart_sum') !== null)
						{
							cart_sum = document.getElementById('cart_sum').innerHTML;
						}
						if(cart_sum>0)
						{
							new_value = cart_sum*xmlhttp.responseText;
							new_value = roundFloat(new_value,2);
							document.getElementById('cart_sum').innerHTML = new_value;
						}

						if (document.getElementById('total_price') !== null)
						{
							total = document.getElementById('total_price').innerHTML;
						}
						if(total>0)
						{
							new_value = total*xmlhttp.responseText;
							new_value = roundFloat(new_value,2);
							document.getElementById('total_price').innerHTML = new_value;
						}
					break;
				}
			}
		}
	};
	xmlhttp.open('GET', url, true);
	xmlhttp.send(null);
}

function changecurrency()
{
	var c_s = document.getElementById('currency_selector');
	var currency_id = c_s.value;
	var	old_currency = getElementByClass("currency", 3);

	loadPageToDiv2('ext/vc.php?p1=' + old_currency + '&p2=' + currencies[currency_id] + '&am=1', 'rate', 1);
	getElementByClass("currency_combo", 5, currencies[currency_id]);
	getElementByClass("currency", 2, currencies[currency_id]);
	loadPageToDiv('ext/cart_handler.php?new_currency=' + currency_id);
}

function change_alternate(product_id)
{
	combo_element = 'combo' + product_id;
	var c_s = document.getElementById(combo_element);
	var currency_id = c_s.value;

	alt_element = 'alt_currency' + product_id;
	old_alt_currency = document.getElementById(alt_element).innerHTML;

	alt_price_element = 'alt_price' + product_id;
	alt_price = document.getElementById(alt_price_element).innerHTML;

	default_element = 'default_currency' + product_id;
	default_id = document.getElementById(default_element).innerHTML;

	//alert('ext/vc.php?p1=' + old_alt_currency + '&p2=' + currencies[currency_id] + '&am=' + alt_price);

	if(currency_id == default_id)
	{
		loadPageToDiv('ext/cart_handler.php?asking_price=' + product_id, alt_price_element)
	}
	else
	{
		loadPageToDiv('ext/vc.php?round=2&p1=' + old_alt_currency + '&p2=' + currencies[currency_id] + '&am=' + alt_price, alt_price_element);
	}
	document.getElementById(alt_element).innerHTML = currencies[currency_id];
}

function block_by(cname, id)
{
	if(typeof cname == 'object')
	{
		id = cname[1];
		cname = cname[0];
	}
	getElementByClass(cname, 7);
	if(cname == 'deliveries')
	{
		cname = 'payments';
	}
	else if(cname == 'payments')
	{
		cname = 'deliveries';
	}
	getElementByClass(cname, 6, id);
}

function addevent(myvfunction, params)
{
	w = window;
	if (document.addEventListener)
	{
		document.addEventListener("DOMContentLoaded", function(){ w[myvfunction](params); }, false);
	}
	else
	{
		window.onload=function(){
	  	w[myvfunction](params);
	  }
	}
}

// **************************************************************************************************** //
//																					work area END
// **************************************************************************************************** //

//general functions

function str_replace(_str, _from, _to)
{
	while (_str.search(_from) != -1)
	{
		_str = _str.replace(_from, _to);
	}
	return _str;
}

function chr(AsciiNum)
{
	return String.fromCharCode(AsciiNum)
}

function in_array (needle, haystack, argStrict) {
	var key = '', strict = !! argStrict;

	if(strict)
	{
		for (key in haystack)
		{
			if(haystack[key] === needle)
			{
				return key;
			}
		}
	}
	else
	{
		for(key in haystack)
		{
			if (haystack[key] == needle)
			{
				return key;
			}
		}
	}
	return false;
}

function roundFloat(x,n)
{
  if(!parseInt(n))
  {
  	var n=0;
  }
  if(!parseFloat(x))
  {
  	return x;
  }
  return Math.round(x*Math.pow(10,n))/Math.pow(10,n);
}

function arrayIndex(data, value)
{
	var i = 0;
	for (i = 0; i < data.length; i++)
	{
		if (data[i] == value)
		{
			return i;
		}
	}
	return -1;
}

function str_replace (search, replace, subject, count)
{
    // %     note 1: The count parameter must be passed as a string in order
    // %     note 1:  to find a global variable in which the result will be given
    // *     example 1: str_replace(' ', '.', 'Kevin van Zonneveld');
    // *     returns 1: 'Kevin.van.Zonneveld'
    // *     example 2: str_replace(['{name}', 'l'], ['hello', 'm'], '{name}, lars');
    // *     returns 2: 'hemmo, mars'    var i = 0,
        j = 0,
        temp = '',
        repl = '',
        sl = 0,        fl = 0,
        f = [].concat(search),
        r = [].concat(replace),
        s = subject,
        ra = r instanceof Array,        sa = s instanceof Array;
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }
    for (i = 0, sl = s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }        for (j = 0, fl = f.length; j < fl; j++) {
            temp = s[i] + '';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {                this.window[count] += (temp.length - s[i].length) / f[j].length;
            }
        }
    }
    return sa ? s : s[0];
}

//deprecated functions

function loadPageToDiv(url, id, parent, append)
{
	if ("XMLHttpRequest" in window)
	{
		var xmlhttp = new XMLHttpRequest();
	}
	if ("ActiveXObject" in window)
	{
		var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4)
		{
			if(id !== undefined)
			{
				if(append === '' || append === undefined)
				{
					if (parent !== '' && parent !== undefined)
					{
						window.parent.document.getElementById(id).innerHTML = xmlhttp.responseText;
					}
					else
					{
						document.getElementById(id).innerHTML = xmlhttp.responseText;
					}
				}
				else
				{
					if(append === 1)
					{
							if (parent !== '' && parent !== undefined)
						{
							window.parent.document.getElementById(id).innerHTML = window.parent.document.getElementById(id).innerHTML + xmlhttp.responseText;
						}
						else
						{
							document.getElementById(id).innerHTML = document.getElementById(id).innerHTML + xmlhttp.responseText;
						}
					}
					if(append === 2)
					{
						if (parent !== '' && parent !== undefined)
						{
							window.parent.document.getElementById(id).innerHTML = xmlhttp.responseText + window.parent.document.getElementById(id).innerHTML;
						}
						else
						{
							document.getElementById(id).innerHTML = xmlhttp.responseText + document.getElementById(id).innerHTML;
						}
					}
				}
			}
		}
	};
	xmlhttp.open('GET', url, true);
	xmlhttp.send(null);
}
