window.onload = init;

function init ()
{

}

/****************
 *  U S E R S   *
 ****************/

function saveUserResponse ( XML )
{
	if ( XML.getElementsByTagName('content')[0] )
	{
		var content = XML.getElementsByTagName('content')[0];
		if ( content.getElementsByTagName('field') )
		{
			var fields = content.getElementsByTagName('field');
		}
	}
	var errors = XML.getElementsByTagName('error');
	var errorString = '';
	for ( var i = 0; i < errors.length; i++ )
	{
		errorString += "<div class='error'>" + errors[i].childNodes[0].nodeValue + '</div>';
	}
	if ( errorString != '' )
	{
		notice.show ( errorString );
		wrapper1.showView('edit');
		return ( false );
	}
	for ( var i = 0; i < fields.length; i++ )
	{
		var fieldName = fields[i].getAttribute('name');
		var fieldValue = fields[i].childNodes[0].nodeValue;
		wrapper1.fillField ( fieldName, fieldValue );		
	}
	wrapper1.showView('show');
}

/**********************
 *   P R O D U C T S  *
 **********************/

function fetchProductRequest ( obj )
{
	ajax.send ( 'basic.php', 'post', 'event=fetch_product&productid=' + obj.itemId, fetchProductResponse);
}

function fetchProductResponse ( XML )
{
	var content = XML.getElementsByTagName('content')[0];
	var fields = content.getElementsByTagName('field');
	var errors = XML.getElementsByTagName('error');
	var errorString = '';
	for ( var i = 0; i < errors.lenght; i++ )
	{
		errorString += "<div class='error'>" + errors[i].childNodes[0].nodeValue + '</div>';
	}
	if ( errorString != '' )
	{
		notice.show ( errorString );
		return ( false );
	}
	for ( var i = 0; i < fields.length; i++ )
	{
		var fieldName = fields[i].getAttribute('name');
		var fieldValue = fields[i].childNodes[0].nodeValue;
		wrapper1.fillField ( fieldName, fieldValue );		
	}
	wrapper1.showView('show');
}

function fetchCategoryRequest ( obj )
{
	ajax.send ( 'basic.php', 'post', 'event=fetch_category&categoryid=' + obj.itemId, fetchCategoryResponse);
}

function fetchCategoryResponse ( XML )
{
	var content = XML.getElementsByTagName('content')[0];
	var fields = content.getElementsByTagName('field');
	var errors = XML.getElementsByTagName('error');
	var errorString = '';
	for ( var i = 0; i < errors.lenght; i++ )
	{
		errorString += "<div class='error'>" + errors[i].childNodes[0].nodeValue + '</div>';
	}
	if ( errorString != '' )
	{
		notice.show ( errorString );
		return ( false );
	}
	for ( var i = 0; i < fields.length; i++ )
	{
		var fieldName = fields[i].getAttribute('name');
		var fieldValue = fields[i].childNodes[0].nodeValue;
		wrapper2.fillField ( fieldName, fieldValue );		
	}
	wrapper2.showView('show');
}

/*********
 * F A Q *
 *********/
function fetchFaqRequest ( obj )
{
	ajax.send ( 'faq.php', 'post', 'event=fetch_faq&faqid=' + obj.itemId, fetchFaqResponse);
}

function fetchFaqResponse ( XML )
{
	var content = XML.getElementsByTagName('content')[0];
	var fields = content.getElementsByTagName('field');
	var errors = XML.getElementsByTagName('error');
	var errorString = '';
	for ( var i = 0; i < errors.lenght; i++ )
	{
		errorString += "<div class='error'>" + errors[i].childNodes[0].nodeValue + '</div>';
	}
	if ( errorString != '' )
	{
		notice.show ( errorString );
		return ( false );
	}
	for ( var i = 0; i < fields.length; i++ )
	{
		var fieldName = fields[i].getAttribute('name');
		var fieldValue = fields[i].childNodes[0].nodeValue;
		wrapper1.fillField ( fieldName, fieldValue );		
	}
	wrapper1.showView('show');
}

/***********
 * C A R T *
 ***********/
function toCartRequest ( obj )
{
	if ( !wrapper1 )
	{
		var wrapper1 = CoreViewMgr.addManager( $('wrapper1') );
		wrapper1.registerView('show');
		wrapper1._registerName('name');
		wrapper1._registerName('image');
		wrapper1._registerName('package');
		wrapper1._registerName('description');
		wrapper1._registerName('colours');
		wrapper1._registerName('stock');
		wrapper1._registerName('price');
		wrapper1.init();
		obj = wrapper1;
	}
	itemId = obj.dataHolders['show']['id'].value;
	ajax.responseType = 'XML';
	ajax.send ( 'cart.php', 'post', 'event=to_cart&id=' + itemId, toCartResponse);
}

var timer;
function setCartRequest ( inputName, quantity )
{
	window.clearTimeout(timer);
	itemId = inputName.toString().substr(4,inputName.length-4);
	ajax.responseType = 'XML';
	timer = window.setTimeout ( "ajax.send ( 'cart.php', 'post', 'event=set_cart&id=" + itemId + "&quantity=" + quantity + "', toCartResponse)", 500 );
	return ( true );
}

function toCartResponse ( XML )
{
	var errors = XML.getElementsByTagName('error');
	var errorString = '';
	for ( var i = 0; i < errors.length; i++ )
	{
		errorString += "<div class='error'>" + errors[i].childNodes[0].nodeValue + '</div>';
	}
	if ( errorString != '' )
	{
		notice.show ( errorString );
	}
	var fields = XML.getElementsByTagName('field');
	for ( var i = 0; i < fields.length; i++ )
	{
		var fieldName = fields[i].getAttribute('name');
		var fieldValue = fields[i].childNodes[0].nodeValue;
		switch ( fieldName )
		{
			case 'itemid': var itemId = fieldValue; break;
			case 'name': var name = fieldValue; break;
			case 'quantity': var quantity = ( fieldValue == 0 ) ? '' : fieldValue; break;
			case 'total': var total = fieldValue; break;
			case 'sum': var sum = fieldValue; break;
			case 'price': var price = fieldValue; break;
			case 'allow': var allow = fieldValue; break;
		}
	}
	//DETERMINE IF A NEW ROW NEEDS TO BE APPENDED
	var exists = false;
	var inputs = $('cart').getElementsByTagName('INPUT');
	for ( var i = 0; i < inputs.length; i++ )
	{
		if (inputs[i].name == 'pid_' + itemId)
		{
			exists = true;
			var tr = inputs[i].parentNode.parentNode;
			break;
		}
	}
	if ( !exists )
	{
		var tr = document.createElement('TR');
		var td = document.createElement('TD');
		td.innerHTML = name;
		tr.appendChild(td);
		var td = document.createElement('TD');
		td.innerHTML = "<input type='text' name='pid_" + itemId + "' value='" + quantity + "' onkeyup='setCartRequest( this.name, this.value );' /> x 1.000 db";
		td.className = 'rightalign';
		tr.appendChild(td);
		var td = document.createElement('TD');
		td.innerHTML = price + " Ft/db";
		td.className = 'rightalign';
		tr.appendChild(td);
		var td = document.createElement('TD');
		td.innerHTML = total + " Ft";
		td.className = 'rightalign';
		tr.appendChild(td);
		var td = document.createElement('TD');
		td.innerHTML = "<a class='redlink' href='#' onclick='delFromCartRequest( " + itemId + ", this ); return ( false );'>Töröl &raquo;</a>";
		td.className = 'rightalign';
		tr.appendChild(td);
		var tr = $('cart').getElementsByTagName('TBODY')[0].insertBefore(tr, $('cart_footer'));
	}
	else
	{
		td = tr.getElementsByTagName('TD');
		td[1].innerHTML = "<input type='text' name='pid_" + itemId + "' value='" + quantity + "' onkeyup='setCartRequest( this.name, this.value );' /> x 1.000 db";
		td[2].innerHTML = price + " Ft/db";
		td[3].innerHTML = total + " Ft";
	}
	$('cart_sum').innerHTML = sum + ' Ft';
	if ( $('toOrder') )
	{
		$('toOrder').style.display = ( allow == 'true' ) ? 'block' : 'none';
	}
	tr.getElementsByTagName('INPUT')[0].focus();
	popupManager.close();
	return ( true );
}

function delFromCartRequest ( itemId, htmlOBJ )
{
	ajax.responseType = 'XML';
	ajax.send ( 'cart.php', 'post', 'event=del_item&id=' + itemId, delFromCartResponse, htmlOBJ.parentNode.parentNode );
}

function delFromCartResponse ( XML, htmlOBJ )
{
	var content = XML.getElementsByTagName('content')[0];
	if ( content && content.getElementsByTagName('field') )
	{
		var fields = content.getElementsByTagName('field');
	}
	var errors = XML.getElementsByTagName('error');
	var errorString = '';
	for ( var i = 0; i < errors.length; i++ )
	{
		errorString += "<div class='error'>" + errors[i].childNodes[0].nodeValue + '</div>';
	}
	if ( errorString != '' )
	{
		notice.show ( errorString );
		return ( false );
	}
	for ( var i = 0; i < fields.length; i++ )
	{
		var fieldName = fields[i].getAttribute('name');
		var fieldValue = fields[i].childNodes[0].nodeValue;
		switch ( fieldName )
		{
			case 'sum': var sum = fieldValue; break;
			case 'allow': var allow = fieldValue; break;
		}
	}
	if ( $('toOrder') )
	{
		$('toOrder').style.display = ( allow == 'true' ) ? 'block' : 'none';
	}
	htmlOBJ.parentNode.removeChild(htmlOBJ);
	$('cart_sum').innerHTML = sum + ' Ft';
}